11.3. トランザクションリソース

Transaction Service は、 様々なリソースマネージャーによって提供される XAResource 実装を利用しトランザクションステートの更新を調整します。 リソースマネージャーは、 データベース、 メッセージキュー、 サードパーティ JCA リソースアダプターなどを含むことがあります。 JBoss Enterprise Application Platform での使用が認定された JDBC データベースドライバーやデータベースの一覧は http://www.jboss.com/products/platforms/application/supportedconfigurations/ を参照してください。 規格準拠の JDBC ドライバーの多くは正しく機能するはずですが、ベンダーによって XA 仕様の解釈が異なるため、認定を受けていないドライバーを使う場合は徹底的なテストを行う必要があります。
データベース接続プールは、アプリケーションサーバーの Datasource ファイルで設定します。これらのファイルは、-ds.xml などのファイル名にします。<xa-datasource> プロパティを使うデータソースは自動的にトランザクションマネージャーとやりとりを行います。JNDI でこのようなデータソースを検索し、 getConnection を呼び出すことで取得した接続は自動的に進行中のトランザクションに参加します。これは、データアクセスに対してトランザクション保証が必要な場合、推奨されるユースケースとなっています。
XA トランザクションに対応できないデータベースを利用している場合、<local-xa-datasource> を使い接続プールをデプロイできます。この種類のデータソースは、「最終リソースコミット最適化 (LRCO: Last Resource Commit Optimization) 」 を使い管理トランザクションに参加し、より制限のあるトランザクション保証を提供します。<no-tx-datasource> から取得した接続は、トランザクションマネージャーとやり取りを行わないため、このような接続で実施される作業については、JDBC API を使いアプリケーション側から明示的にコミットあるいはロールバックを行う必要があります。
多くのデータベースでは、XA リソースマネージャーとして機能できるようになるまでに追加設定が必要となります。データベース設定に関するベンダー固有の情報は、付録A ベンダー固有のデータソース定義 にあります。追加設定の説明については、ご利用中のデータベースに同梱されているデータベースアドミニストレーターや文書を参照してください。さらに、XA リカバリの適切な設定方法に関する情報は、JBoss Transactions 管理ガイドを参照してください。
JBoss Messaging は XA 対応ドライバーを提供しており、XA トランザクションに参加できます。 詳細については、JBoss Messaging ユーザガイドを参照してください。