9.6 TCCでのJAX-RSアプリケーションの開発

MicroTxライブラリは、JAX-RSフィルタを使用して受信HTTPコールをインターセプトしてから、新しいTCCトランザクションを開始するか、既存のトランザクションに参加します。

次の注釈を使用して、アプリケーション・コードにTCC機能を追加し、参加側サービスを登録します。

  • @TCC(timeLimit = 120, timeUnit = ChronoUnit.SECONDS)

    これを使用して、MicroTxが新しいTCCトランザクションを開始または既存のトランザクションに参加するためにコールするアプリケーション固有のRESTリソースに注釈を付けます。

注釈をクラスに追加すると、JAX-RSフィルタがその注釈を探して、TCCトランザクションに参加するクラスを識別します。リクエスト・ヘッダーにlinkの値が含まれていない場合、MicroTxライブラリは、リクエスト・ヘッダーにlinkの値と一意のトランザクションIDを作成します。一意のトランザクションIDを使用して、トランザクションの識別、トレースまたはデバッグを行うことができます。

リクエスト・ヘッダーにlinkの値が含まれている場合、アプリケーションは既存のTCCトランザクションに参加します。トランザクションに参加するすべてのアプリケーションが、一意のTCCトランザクションIDを共有します。リクエスト・ヘッダーのlinkの値の例を次に示します:

link=[<http://tmm-app:9000/api/v1/tcc-transaction/7ff...>; rel="https://otmm.oracle.com/tcc-transaction/internal",<http://tmm-app:9000/api/v1/tcc-transaction/7ff...>; rel="https://otmm.oracle.com/tcc-transaction/external"]

ここで、7ff...が一意のトランザクションIDです。値の例は、読みやすくするために...を使用して一部を省いています。ご使用の環境でヘッダーを確認すると、値全体が表示されます。

MicroTxライブラリの詳細は、Oracle® Transaction Manager for Microservices Java (Jakarta) APIリファレンスを参照してください。

トピック