Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説

[目次][用語][索引][前へ][次へ]

3.4 ビジネスプロセスのトランザクション

永続化するビジネスプロセスの場合,ビジネスプロセスを実行する過程でアクティビティの状態をデータベースに出力します。

ここでは,アクティビティの状態を確定するタイミング(トランザクションの開始とコミット)について説明します。

トランザクションの開始とコミットのタイミングを次の表に示します。

表3-7 トランザクションの開始とコミットのタイミング

処理 タイミング
トランザクションの開始 受付アクティビティでメッセージを受信したとき。
通信モデルが同期の場合のサービス呼出アクティビティで,メッセージを送信する前のトランザクションをコミットした直後。
また,ビジネスプロセスの状態の互換性(HCSCサーバセットアップ定義のbp-status-compatible)にOFFを指定した場合は,サービス呼出アクティビティの状態の互換性(HCSCサーバセットアップ定義のbp-invoke-status-compatible)の設定にかかわらず,サービス呼出アクティビティでメッセージを送信する前のトランザクションをコミットした直後(通信モデルが同期,非同期のどちらでも同じタイミングになります)。
ビジネスプロセスの状態の互換性(HCSCサーバセットアップ定義のbp-status-compatible)にOFFを指定,かつサービス呼出アクティビティの状態の互換性(HCSCサーバセットアップ定義のbp-invoke-status-compatible)にONを指定した場合,サービス呼出アクティビティの処理が完了したときのトランザクションをコミットした直後。
また,ビジネスプロセスの状態の互換性にOFFを指定,かつサービス呼出アクティビティの状態の互換性にOFFを指定した場合,サービス呼出アクティビティの処理で例外が発生したときのトランザクションをコミットした直後。
応答アクティビティの処理のあとに存在するアクティビティを実行する直前。
プロセス再実行ユティリティによって,プロセスを再実行するとき。
待機アクティビティに指定された間隔または期限でタイマが解除された直後。
待機アクティビティの処理が完了したときのトランザクションをコミットした直後。
トランザクション制御を行うスコープアクティビティの開始で,トランザクションをコミットした直後。
トランザクション制御を行うスコープアクティビティの終了で,トランザクションをコミットした直後。
トランザクションのコミット 応答アクティビティでメッセージを応答する直前。
通信モデルが同期の場合のサービス呼出アクティビティでメッセージを送信する直前。
また,ビジネスプロセスの状態の互換性(HCSCサーバセットアップ定義のbp-status-compatible)にOFFを指定した場合は,サービス呼出アクティビティの状態の互換性(HCSCサーバセットアップ定義のbp-invoke-status-compatible)の設定にかかわらず,サービス呼出アクティビティでメッセージを送信する直前(通信モデルが同期,非同期のどちらでも同じタイミングになります)。
ビジネスプロセスの状態の互換性(HCSCサーバセットアップ定義のbp-status-compatible)にOFFを指定,かつサービス呼出アクティビティの状態の互換性(HCSCサーバセットアップ定義のbp-invoke-status-compatible)にONを指定した場合,サービス呼出アクティビティの処理が完了したとき。
また,ビジネスプロセスの状態の互換性にOFFを指定,かつサービス呼出アクティビティの状態の互換性にOFFを指定した場合,サービス呼出アクティビティの処理で例外が発生したとき。
実行可能なすべてのアクティビティを実行し,ビジネスプロセスの処理を終了するとき。
待機アクティビティに指定された間隔または期限のJ2EEサーバのTimerServiceにタイマを登録する直前。
待機アクティビティの処理が完了したとき。
トランザクション制御を行うスコープアクティビティが開始したとき。
トランザクション制御を行うスコープアクティビティが終了したとき。

トランザクションの開始とコミットのタイミングは,ビジネスプロセスの状態の互換性(HCSCサーバセットアップ定義のbp-status-compatible)の指定がONまたはOFFの場合,またはサービス呼出アクティビティの状態の互換性(HCSCサーバセットアップ定義のbp-invoke-status-compatible)の指定がONまたはOFFの場合で動作が異なります。

サービス呼出アクティビティの状態の互換性は,ビジネスプロセスの状態の互換性の指定がOFFのときに,有効となります。

なお,サービス呼出アクティビティの状態の互換性にONを指定した場合は,サービスプラットフォームのバージョン08-70以前と同じ動作となります。

それぞれのトランザクションの開始とコミットのタイミングの例を次に示します。

<この節の構成>
3.4.1 ビジネスプロセスの状態の互換性の指定をONにした場合のトランザクション
3.4.2 ビジネスプロセスの状態の互換性の指定をOFF,サービス呼出アクティビティの状態の互換性の指定をONにした場合のトランザクション
3.4.3 ビジネスプロセスの状態の互換性の指定をOFF,サービス呼出アクティビティの状態の互換性の指定をOFFにした場合のトランザクション
3.4.4 サービス呼出アクティビティのトランザクション
3.4.5 スコープの開始時および終了時にコミットする設定を選択した場合のトランザクション
3.4.6 スコープアクティビティのトランザクション
3.4.7 応答アクティビティのトランザクション