8 TCCでのアプリケーションの開発
TCCプロトコルでは、トランザクション・イニシエータ・サービスが、他の参加側マイクロサービスにリソースを予約するように求めます。イニシエータとすべての参加側が必要な予約を取得すると、イニシエータは次に、すべての予約を確定するようにMicroTxにリクエストを送信します。
TCCトランザクション・プロトコルを使用するカスタム・アプリケーションを開発するためのガイドライン
イニシエータ・サービスがビジネス・ロジックに基づいて、行われた予約が必要ない(使用できない)と判断すると、すべての予約を取り消すようにMicroTxにリクエストします。予約の内容はアプリケーションによって異なります。
TCCトランザクション・プロトコルは、基本のHTTP
動詞(POST
、PUT
およびDELETE
)に依存します。アプリケーションが次のガイドラインに準拠していることを確認します:
- トランザクション・イニシエータ・サービスは、
POST
HTTPメソッドを使用して新しい予約を作成する必要があります。このリクエストへのレスポンスとして、トランザクション参加側サービスは予約を表すURIを返す必要があります。MicroTxクライアント・ライブラリは、MicroTx固有のヘッダーにそのURIを配置して、URIがコール・スタックに伝播されるようにします。 - このプロトコルは参加側サービスに依存して、確実にすべての参加側サービスが予約を確定するか取り消すようにします。URIは、予約を確定するために
PUT
HTTPメソッドに応答し、予約を取り消すにはDELETE
HTTPメソッドに応答する必要があります。
- TCCでアプリケーションを開発するワークフロー
MicroTxを使用してTCCトランザクションを管理するアプリケーションを開発するには、次のワークフローをガイドとして使用します。 - ライブラリ・プロパティの構成
MicroTxクライアント・ライブラリ・プロパティの構成情報を指定します。すべての参加側アプリケーションおよびイニシエータ・アプリケーションに対してこのステップを実行する必要があります。 - トランザクションのタイムアウトについて
リクエストをアクティブにしておく期間を指定します。この値は、TCCトランザクションに参加する各マイクロサービスに固有です。トランザクションが、指定した期間内にマイクロサービスによって確定または取り消されない場合、トランザクションは取り消されます。 - TCCでのJavaアプリケーションの開発
MicroTxライブラリは、JAX-RSフィルタを使用して受信HTTPコールをインターセプトしてから、新しいTCCトランザクションを開始するか、既存のトランザクションに参加します。 - TCCでのNode.jsアプリケーションの開発
- TCCでのPythonアプリケーションの開発
Pythonアプリケーション用のMicroTxクライアント・ライブラリは、新しいTCCトランザクションを開始したり、既存のTCCトランザクションに参加したりする機能を提供します。