2.2.12 業務ロジックからのexecuteTryメソッドの呼び出し(TCC-Participant限定)
業務ロジックからのexecuteTryメソッドの呼び出しの実装は、TCC-Participantのアプリケーションで実装してください。
TCC-ParticipantではOrchestratorからAPIが呼び出されたあと、executeTryメソッドが実行されることを想定し、executeTryメソッドが実行されたタイミングからトランザクション制御を開始します。API呼び出し後の業務ロジックの中でexecuteTryメソッドの呼び出しを実施する必要があります。
なお、executeConfirmメソッド、executeCancelメソッド、executeRecoverメソッド、getOperationIdメソッドに関しては、TCC-Participantがトランザクション制御を行う過程でTCC-Participantから呼び出すため、業務ロジックの中で呼び出す必要はありません。
executeTryメソッドの呼び出しでのHMP-PCTOのエラー発生条件とその動作を次に示します。
-
HMP-PCTOがトランザクションブランチ情報の取得に失敗した場合:
HMP-PCTOは、KFSG62002-Eのエラーメッセージを出力し、executeTryメソッドの呼び出し元の業務ロジックに対して、java.lang.IllegalStateExceptionを送出します。
-
@Tccアノテーションの付与対象がTccServiceになっていない場合:
HMP-PCTOは、KFSG62003-Eのエラーメッセージを出力し、executeTryメソッドの呼び出し元の業務ロジックに対して、java.lang.IllegalStateExceptionを送出します。
-
1つのトランザクション内で、同一のOperationIdを持つTccServiceのexecuteTryメソッドを複数回実行した場合:
HMP-PCTOは、KFSG62013-Eのエラーメッセージを出力し、executeTryメソッドの呼び出し元の業務ロジックに対して、java.lang.IllegalStateExceptionを送出します。