Sun Java System Message Queue 4.2 リリースノート

分散トランザクションの C-API サポート

X/Open 分散トランザクションモデルに従って、分散トランザクションのサポートは、1 つ以上のリソースマネージャーで実行される操作の追跡と管理を行う分散トランザクションマネージャーに依存します。Message Queue 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 によって管理されます。

public 情報

X/Open XA インタフェース仕様では、Message Queue の XA 準拠リソースマネージャーに関する次の public 情報が必要です。

次の名前と値の組み合わせがサポートされます。

表 1–6 Message Queue リソースマネージャーの名前と値の組み合わせ

名前 

値 

説明 

デフォルト 

address 

host:port

ブローカのPortmapper サービスのホストとポート 

localhost:7676

username 

文字列 

ブローカへの接続に使用するユーザー名 

guest

password 

文字列 

ユーザー名のパスワード 

guest

conntype 

TCP または SSL 

ブローカへの接続のプロトコルの種類 

TCP

trustedhost 

true/false 

ブローカのホストが信頼できるかどうか (conntype が SSL の場合にのみ使用) 

true

certdbpath 

文字列 

NSS 証明書およびキーデータベースファイルが格納されたディレクトリへのフルパス 

なし 

clientid 

文字列 

JMS 永続サブスクリプションでのみ必要 

なし 

reconnects 

整数 

ブローカへの再接続の試行回数 (0 は再接続しないことを意味する) 

0

プログラミング例

分散トランザクションを使用するアプリケーションのプログラミングでは、トランザクションマネージャー環境で動作するサーバー側のサービスと、トランザクションマネージャー API を呼び出すクライアント側のコードを作成します。Message Queue 4.2 には、Tuxedo トランザクションマネージャーに基づくプログラミング例が用意されています。それらの例は、各プラットフォームの ./C/tuxedo ディレクトリ内の sample programs ディレクトリにあります。

このディレクトリに含まれている README ファイルに、Message Queue リソースマネージャーを使用するための Tuxedo のセットアップ方法、および Tuxedo 環境で次のプログラミング例を構築する方法が記載されています。

プログラミング例 

説明 

jmsserver.c

Message Queue を使用してメッセージを送受信する Tuxedo サービスを実装します。 

jmsclient_sender.c

jmsserver.c プログラムのメッセージ生成サービスを使用する Tuxedo クライアントです。

jmsclient_receiver.c

jmsserver.c プログラムのメッセージ受信サービスを使用する Tuxedo クライアントです。

async_jmsserver.c

Message Queue を使用してメッセージを非同期に消費する Tuxedo サービスを実装します。 

jmsclient_async_receiver.c

async_jmsserver.c プログラムの非同期メッセージ消費サービスを使用する Tuxed クライアントです。