6 XAでのアプリケーションの開発
マイクロサービス対応トランザクション・マネージャ(MicroTx)を使用してマイクロサービスのトランザクションを管理するには、既存のアプリケーション・コードにいくつか変更を加えて、MicroTxライブラリによって提供される機能を統合する必要があります。
MicroTxライブラリには、Java、Node.js、ORDS、Tuxedo、およびWebLogic Serverアプリケーション用があります。「サポートされている言語およびフレームワーク」を参照してください。
- 開始する前に、MicroTxトランザクション・コーディネータがインストールされており、それにアクセスできることを確認します。「MicroTxへのアクセス」を参照してください。
- マイクロサービスの実装にMicroTxクライアント・ライブラリを含めます。
- CDI注釈またはMicroTxクライアント・ライブラリAPIを使用して、必要なインターセプタとコールバックを登録します。
- 参加側マイクロサービスでCDI注釈またはMicroTxクライアント・ライブラリAPIを使用して、XA準拠のリソース・マネージャとの接続を取得します。
- MicroTxクライアント・ライブラリAPIを使用して、XAトランザクションが開始したことを示すトランザクション境界を区切ってから、トランザクションをコミットまたはロールバックします。
MicroTxを使用してXAトランザクションを管理するアプリケーションを開発するには、次のワークフローをガイドとして使用します。
タスク | 説明 | 詳細 |
---|---|---|
トランザクション参加側アプリケーションのリソース・マネージャを設定します | XA準拠またはXA非準拠など、使用するリソース・マネージャのタイプを特定します。 | リソース・マネージャの計画 |
MicroTxライブラリ・プロパティの構成情報を指定します。 | すべてのトランザクション参加側アプリケーションおよびトランザクション・イニシエータ・アプリケーションに対してこのステップを実行し、アプリケーションがライブラリにアクセスできるようにします。 | ライブラリ・プロパティの構成 |
MicroTxライブラリをアプリケーション・コードと統合します。 | 次の要因に基づいて、ライブラリを統合する適切な手順を選択します:
|
アプリケーションに応じて、次のいずれかのタスクを実行します: |
アプリケーションのデプロイ | マイクロサービスの開発、テストおよびデプロイを個別に行います。アプリケーションでライブラリ・ファイルを使用してから、環境にアプリケーションをデプロイします。 | アプリケーションのデプロイ |
- リソース・マネージャの計画
この項で説明する点を考慮して、リソース・マネージャについて計画します。選択するリソース・マネージャとその使用方法に応じて、アプリケーションの構成要件は異なります。 - リソース・マネージャ接続詳細の指定
リソース・マネージャを使用してアプリケーション・データを格納するトランザクション参加側アプリケーションごとに、リソース・マネージャにアクセスするための接続文字列、ユーザー名およびパスワードを、アプリケーションのYAML
ファイルに入力します。アプリケーションでリソース・マネージャを使用しない場合は、この項をスキップします。 - リソース・マネージャとしてのPostgreSQLの構成
PostgreSQLをXAトランザクションのリソース・マネージャとして使用するには、準備完了状態のトランザクションおよびセッション・アフィニティを有効にする必要があります。 - XAトランザクションの管理
- ライブラリ・プロパティの構成
JAX-RS、Node.jsおよびORDSアプリケーションのMicroTxライブラリ・プロパティの構成情報を指定します。値は参加側アプリケーションとイニシエータ・アプリケーションの両方に指定します。 - @Transactionalについて
XAトランザクション・プロトコルを使用するJavaアプリケーションは2つの異なる方法で構成できます。 - XAでのSpring RESTアプリケーションの開発
Spring RESTアプリケーションでMicroTxライブラリを使用します。 - XAでのJAX-RSアプリケーションの開発
JAX-RSアプリケーションでMicroTxライブラリを使用します。 - XAでのNode.jsアプリケーションの開発
- トランザクション参加側としてのORDSアプリケーションの開発
この項では、Oracle Databaseサンプル・アプリケーションをデプロイして実行するというコンテキストで、データベース・アプリケーションをXA参加側として構成する詳しいステップを説明します。