6.8 XAでのJAX-RSアプリケーションの開発
JAX-RSアプリケーションでMicroTxライブラリを使用します。
- JAX-RSアプリケーションのMicroTxライブラリについて
MicroTxライブラリをJAX-RSアプリケーションと統合します。 - トランザクション・イニシエータとしてのJAX-RSアプリケーションの構成
トランザクション・イニシエータ・サービスは、トランザクションを開始します。トランザクション・イニシエータ・サービスは、アプリケーションのビジネス・ロジックに基づいて、トランザクションの開始のみ、またはトランザクションの開始とトランザクションへの参加を行うことができます。 - トランザクション参加側としてのJAX-RSアプリケーションの構成
リソース・マネージャがXAに準拠しているかどうかに基づいて、環境変数を設定し、MicroTxライブラリの様々なクラスを実装して参加側アプリケーションを構成します。 - トランザクション参加側としてのJPAベースのJavaアプリケーションの構成
この項に記載されている情報を使用して、HibernateまたはEclipseLinkを、HelidonまたはSpring BootアプリケーションのJPAプロバイダとして構成します。
親トピック: XAでのアプリケーションの開発
6.8.1 JAX-RSアプリケーションのMicroTxライブラリについて
MicroTxライブラリをJAX-RSアプリケーションと統合します。
JAX-RS用のMicroTxライブラリは次の機能を実行します:
- 参加側サービスをトランザクション内でトランザクション・コーディネータに登録します。
- 使用する参加側アプリケーション・コードのために依存関係インジェクションを介して
XADataSource
オブジェクトを注入し、関連付けられたXAResource
に対してstart()
をコールします。参加側マイクロサービス(XAトランザクションのコンテキストでコールされるマイクロサービス)は、XA準拠のデータ・ソースを使用する必要があります。Javaでは、これはXADataSource
オブジェクトの使用を意味します。MicroTxライブラリは、構成済のデータ・ソースを参加側サービスに自動的に注入するため、アプリケーション開発者は
@Inject
または@Context
注釈をアプリケーション・コードに追加する必要があります。アプリケーション・コードは、この関連付けを使用してDMLを実行します。 - リソース・マネージャをコールして操作を実行します。
親トピック: XAでのJAX-RSアプリケーションの開発
6.8.2 トランザクション・イニシエータとしてのJAX-RSアプリケーションの構成
トランザクション・イニシエータ・サービスは、トランザクションを開始します。トランザクション・イニシエータ・サービスは、アプリケーションのビジネス・ロジックに基づいて、トランザクションの開始のみ、またはトランザクションの開始とトランザクションへの参加を行うことができます。
開始する前に、アプリケーションがトランザクションを開始するだけか、トランザクションを開始して参加するのかを確認します。2つのシナリオでは要件が若干異なるため、それに応じてアプリケーションを構成します。
- シナリオ1: 銀行振込アプリケーションによって、ある部門から別の部門に送金します。この場合、振込アプリケーションはトランザクションを開始するだけで、トランザクションには参加しません。振込アプリケーションは、トランザクションを完了するためにビジネス・ロジックに基づいて様々なサービスをコールします。データベース・インスタンスは、振込アプリケーションにアタッチされる場合とアタッチされない場合があります。
- シナリオ2: 銀行振込アプリケーションによって、ある部門から別の部門に送金します。振込アプリケーションは、トランザクションごとに手数料として1%を請求します。この場合、振込アプリケーションはトランザクションを開始して参加します。データベース・インスタンスは、トランザクション情報を保存するために振込アプリケーションにアタッチされる必要があります。
installation_directory\otmm-RELEASE\samples\xa\java\accounts
にあります。これは、MicroTx JavaライブラリをJavaイニシエータ・アプリケーションのビジネス・ロジックとともに使用する方法の例です。このサンプル・アプリケーションは振込(Teller)という名前です。これは2つの部門間のトランザクションを開始します。部門Aをコールして一定金額を引き出し、部門Bをコールして預け入れます。
親トピック: XAでのJAX-RSアプリケーションの開発
6.8.3 トランザクション参加側としてのJAX-RSアプリケーションの構成
リソース・マネージャがXAに準拠しているかどうかに基づいて、環境変数を設定し、MicroTxライブラリの様々なクラスを実装して参加側アプリケーションを構成します。
- XA準拠リソース・マネージャを使用するJAX-RSアプリケーションの構成
XA準拠のリソース・マネージャを使用する場合は、この項に記載されている情報を使用してJAX-RS参加側アプリケーションを構成します。 - 複数のXA準拠リソース・マネージャを使用するJAX-RSアプリケーションの構成
複数のXA準拠のリソース・マネージャを使用する場合は、この項に記載されている情報を使用してJAX-RS参加側アプリケーションを構成します。 - 非XA JDBCリソースを使用するJAX-RSアプリケーションの構成
XAをサポートしないJDBCリソースを使用する場合は、この項に記載されている情報を使用してJAX-RS参加側アプリケーションを構成します。 - 非XAかつ非JDBCのリソースを使用するJAX-RSアプリケーションの構成
XAもJDBCもサポートしないリソースを使用する場合は、この項に記載されている情報を使用してJAX-RS参加側アプリケーションを構成します。
親トピック: XAでのJAX-RSアプリケーションの開発
6.8.3.1 XA準拠リソース・マネージャを使用するJAX-RSアプリケーションの構成
XA準拠のリソース・マネージャを使用する場合は、この項に記載されている情報を使用してJAX-RS参加側アプリケーションを構成します。
6.8.3.2 複数のXA準拠リソース・マネージャを使用するJAX-RSアプリケーションの構成
複数のXA準拠のリソース・マネージャを使用する場合は、この項に記載されている情報を使用してJAX-RS参加側アプリケーションを構成します。
6.8.3.3 非XA JDBCリソースを使用するJAX-RSアプリケーションの構成
XAをサポートしないJDBCリソースを使用する場合は、この項に記載されている情報を使用してJAX-RS参加側アプリケーションを構成します。
6.8.4 トランザクション参加側としてのJPAベースのJavaアプリケーションの構成
この項に記載されている情報を使用して、HibernateまたはEclipseLinkを、HelidonまたはSpring BootアプリケーションのJPAプロバイダとして構成します。
トランザクション参加側としてのJPAベースのアプリケーションの構成は、トランザクション参加側としてのJDBCベースのJavaアプリケーションの構成に似ています。
JDBCベースのJavaアプリケーションをトランザクション参加側として構成するには、カスタム・データ・ソース・オブジェクトを作成し、このオブジェクトをMicroTxライブラリに渡します。Javaアプリケーション・コードで、カスタム・データ・ソースの詳細をTrmSQLConnection
接続オブジェクトに注入してから、注入されたオブジェクトを使用するようにアプリケーション・コードを更新します。
JPAベースのJavaアプリケーションをトランザクション参加側として構成するには、カスタム・データ・ソース・オブジェクトを作成し、このオブジェクトをMicroTxライブラリに渡します。アプリケーション・コードで、カスタム・データ・ソースの詳細をTrmEntityManager
オブジェクトに注入してから、注入されたオブジェクトを使用するようにアプリケーション・コードを更新します。
- XA準拠リソース・マネージャを使用するJPAベースのJavaアプリケーションの構成
XA準拠のリソース・マネージャを使用する場合は、この項に記載されている情報を使用して、XAトランザクションに参加するHelidonまたはSpring BootアプリケーションのJPAプロバイダとしてHibernateまたはEclipseLinkを使用します。
親トピック: XAでのJAX-RSアプリケーションの開発
6.8.4.1 XA準拠リソース・マネージャを使用するJPAベースのJavaアプリケーションの構成
XA準拠のリソース・マネージャを使用する場合は、この項に記載されている情報を使用して、XAトランザクションに参加するHelidonまたはSpring BootアプリケーションのJPAプロバイダとしてHibernateまたはEclipseLinkを使用します。