7.6.5 UAPからロールバック要求があった場合の転送処理
(1) 同時引き出しなしのサービスの場合
実行される関数によって処理が異なります。
(a) ee_trn_chained_rollback関数によるロールバック要求の場合
UAPからee_trn_chained_rollback関数によるロールバック要求があった場合,入力メッセージを未読み出し状態に戻したあと(処理キューを引き戻したあと),再度処理キューを引き出してトランザクションを実行します。
ロールバック時の処理の流れを次に示します。
- UAPからロールバック要求を受け付けると,同期してロールバック決着を行い,入力メッセージを未読み出し状態に戻します。ただし,連鎖モード連携機能の使用有無によっては,UAPからのリターン後に入力メッセージを未読み出し状態に戻す場合があります。
- UAPからのリターン後,コミット決着を行いリターンします。永続化が必要なリソースがある場合は,CL同期メッセージを待機系に送信します。
- 引き戻した処理キューを再度引き出し,UAPに制御を渡します。
(b) ee_trn_rollback_mark関数によるロールバック要求の場合
UAPからee_trn_rollback_mark関数によるロールバック要求があった場合,入力メッセージを未読み出し状態に戻したあと(処理キューを引き戻したあと),再度処理キューを引き出してトランザクションを実行します。
ロールバック時の処理の流れを次に示します。
- UAPからロールバック要求を受け付けると,UAPからのリターン後にロールバック決着を行い,入力メッセージを未読み出し状態に戻します。
- 引き戻した処理キューを再度引き出し,UAPに制御を渡します。
(2) 同時引き出しありのサービスの場合
実行される関数によって処理が異なります。
(a) ee_trn_chained_rollback関数によるロールバック要求の場合
UAPからee_trn_chained_rollback関数によるロールバック要求があった場合,ロールバック情報を待機系へ転送し,入力メッセージを削除します。
ロールバック時の処理の流れを次に示します。
- UAPからロールバック要求を受け付けると,同期してロールバック決着を行い,ロールバック決着情報を転送(CL同期メッセージ)し,続けてCL同期済み通知メッセージを送信します。ただし,連鎖モード連携機能の使用有無によっては,UAPからのリターン後にCL同期メッセージまたはCL同期済み通知メッセージを送信する場合があります。
- CL同期済み通知メッセージを受信した待機系は,仮登録済みの処理キューを登録し,ロールバック決着を行います。
(b) ee_trn_rollback_mark関数によるロールバック要求の場合
UAPからee_trn_rollback_mark関数によるロールバック要求があった場合,UAPリターン後にロールバック情報を待機系に転送します。