X/Open 分散トランザクションモデルに従って、分散トランザクションのサポートは、1 つ以上のリソースマネージャーで実行される操作の追跡と管理を行う分散トランザクションマネージャーに依存します。メッセージキュー 4.2 では、Message Queue C-API で XA インタフェース (分散トランザクションマネージャーと、XA 準拠のリソースマネージャーとしての Message Queue の間のインタフェース) がサポートされます。それにより、BEA Tuxedo などの分散トランザクション処理環境で実行される Message Queue C-API クライアントが、分散トランザクションに参加できます。
この分散トランザクションのサポートは、次に示す、XA インタフェース仕様を実装するための新しい C-API 関数 (および新しいパラメータとエラーコード) から成ります。
MQGetXAConnection() MQCreateXASession()
C クライアントアプリケーションを分散トランザクションのコンテキストで使用する場合は、MQGetXAConnection() を使用して接続を取得し、MQCreateXASession() を使用して、メッセージを生成および消費するためのセッションを作成します。すべての分散トランザクションの開始、コミット、およびロールバックは、分散トランザクションマネージャーが提供する API によって管理されます。
分散トランザクション機能の使用法については、『Sun GlassFish Message Queue 4.4 Developer’s Guide for C Clients』の「Working With Distributed Transactions」を参照してください。
メッセージキュー 4.2 には、Tuxedo トランザクションマネージャーに基づくプログラミング例が用意されています。これらのサンプルプログラムの使用法については、『Sun GlassFish Message Queue 4.4 Developer’s Guide for C Clients』の「Distributed Transaction Sample Programs」を参照してください。
分散トランザクション機能は、Solaris、Linux、および Windows プラットフォームでサポートされますが、現時点で保証されているのは Solaris プラットフォームのみです。