Cosminexus V9 BPM/ESB基盤 サービスプラットフォーム 解説
(1) 同期のサービス呼出アクティビティが2つ並んだ場合
- 正常に処理が進行した場合
- それぞれのサービス呼出アクティビティでのメッセージ送信処理直前でトランザクションをコミットし,新たにトランザクションを開始します。また,メッセージ送信処理が完了したあとにもトランザクションをコミットし,新たにトランザクションを開始します。
- 同期のサービス呼出で正常に処理が進行した場合のトランザクションの範囲を次の図に示します。
図3-26 正常に処理が進行した場合のトランザクションの範囲(同期のサービス呼出)
- 例外が発生した場合
- サービス呼出2の処理が例外でエラーとなった場合は,トランザクションがコミットした時点(受付:完了状態,サービス呼出1:完了状態,サービス呼出2:実行中状態)にロールバックしたあと,プロセスインスタンスおよびサービス呼出アクティビティの状態にエラー発生(Error)を設定して,トランザクションをコミットします。
- 同期のサービス呼出で例外が発生した場合のトランザクションの範囲を次の図に示します。
図3-27 例外が発生した場合のトランザクションの範囲(同期のサービス呼出)
(2) 非同期と同期のサービス呼出アクティビティが2つ並んだ場合
- 正常に処理が進行した場合
- それぞれのサービス呼出アクティビティでのメッセージ送信処理直前でトランザクションをコミットし,新たにトランザクションを開始します。また,メッセージ送信処理が完了したあとにもトランザクションをコミットし,新たにトランザクションを開始します。
- 非同期と同期のサービス呼出で正常に処理が進行した場合のトランザクションの範囲を次の図に示します。
図3-28 正常に処理が進行した場合のトランザクションの範囲(非同期と同期のサービス呼出)
- 例外が発生した場合(非同期と同期のサービス呼出)
- サービス呼出2の処理が例外でエラーとなった場合は,トランザクションがコミットした時点(受付:完了状態,サービス呼出1:完了状態,サービス呼出2:実行中状態)にロールバックしたあと,プロセスインスタンスおよびサービス呼出アクティビティの状態にエラー発生(Error)を設定して,トランザクションをコミットします。
- 非同期と同期のサービス呼出で例外が発生した場合のトランザクションの範囲を次の図に示します。
図3-29 例外が発生した場合のトランザクションの範囲(非同期と同期のサービス呼出)
(3) 非同期のサービス呼出アクティビティが2つ並んだ場合
- 正常に処理が進行した場合
- それぞれのサービス呼出アクティビティでのメッセージ送信処理直前でトランザクションをコミットし,新たにトランザクションを開始します。また,メッセージ送信処理が完了したあとにもトランザクションをコミットし,新たにトランザクションを開始します。
- 非同期のサービス呼出で正常に処理が進行した場合のトランザクションの範囲を次の図に示します。
図3-30 正常に処理が進行した場合のトランザクションの範囲(非同期のサービス呼出)
- 例外が発生した場合
- サービス呼出2の処理が例外でエラーとなった場合は,トランザクションがコミットした時点(受付:完了状態,サービス呼出1:完了状態,サービス呼出2:実行中状態)にロールバックしたあと,プロセスインスタンスおよびサービス呼出アクティビティの状態にエラー発生(Error)を設定して,トランザクションをコミットします。
- 非同期のサービス呼出で例外が発生した場合のトランザクションの範囲を次の図に示します。
図3-31 例外が発生した場合のトランザクションの範囲(非同期のサービス呼出)
(4) 同期のサービス呼出アクティビティのあとにデータ変換アクティビティがある場合
- 正常に処理が進行した場合
- それぞれのサービス呼出アクティビティでのメッセージ送信処理直前でトランザクションをコミットし,新たにトランザクションを開始します。また,メッセージ送信処理が完了したあとにもトランザクションをコミットし,新たにトランザクションを開始します。
- ただし,データ変換アクティビティではトランザクションがコミットしません。これは,「表3-7 トランザクションの開始とコミットのタイミング」で示した以外のアクティビティも同様です。
- データ変換などのアクティビティがある場合で正常に処理が進行したときのトランザクションの範囲を次の図に示します。
図3-32 正常に処理が進行した場合のトランザクションの範囲(データ変換などのアクティビティがある場合)
- 例外が発生した場合(データ変換などのアクティビティがある場合)
- サービス呼出1のあとのデータ変換処理でエラーとなった場合は,トランザクションがコミットした時点(受付:完了状態,サービス呼出1:完了状態,データ変換:未実行状態)までロールバックします。
- データ変換などのアクティビティがある場合で例外が発生したときのトランザクションの範囲を次の図に示します。
図3-33 例外が発生した場合のトランザクションの範囲(データ変換などのアクティビティがある場合)
All Rights Reserved. Copyright (C) 2012, 2019, Hitachi, Ltd.