ブローカー環境を構成して、WebSphere® MQ キュー・マネージャーの制御の下に、メッセージ・フロー・トランザクションを Oracle データベースの更新情報とグローバルに整合させます。
DataDirect ドライバーを伴うトランザクション・マネージャーとして 64 ビット・キュー・マネージャーを使用することによりグローバル調整を実施するためのブローカー環境を構成します。

Linux および UNIX の場合、mqsimanagexalinks コマンドを実行します。
Windows 64 ビット で、64 ビット版の WebSphere Message
Broker の場合、mqsimanagexalinks コマンドを実行して、キュー・マネージャーの ExitsDefaultPath として指定されているディレクトリーをシステム・パスに追加します。
- XA リソース・マネージャーの情報を使って、キュー・マネージャーがグローバルに調整するトランザクションに参加するデータベースごとに、ブローカーのキュー・マネージャーを構成します。

Linux および UNIX の場合:
- テキスト・エディターでキュー・マネージャーの qm.ini ファイルを開きます。 qm.ini ファイルは、/var/mqm/qmgrs/queue_manager_name/qm.ini にあります。
ここで、queue_manager_name は、キュー・マネージャーに関連付けられているブローカーの名前です。
- 以下のスタンザを qm.ini ファイルの末尾に追加します。

XAResourceManager:
Name=OracleXA
SwitchFile=UKoradtc24.so
XAOpenString=ORACLE_XA
+HostName=MyHostName
+PortNumber=MyPortNumber
+ServiceName=MyServiceName
+ACC=P/MyUserId/MyPassword
+sestm=100+threads=TRUE
+DataSource=MyDataSourceName
+K=2+
XACloseString=
ThreadOfControl=THREAD
- XAOpenString 行で、以下の値を、ご使用の構成に適した値に置き換えます。
- MyHostName は、Oracle データベース・リスナーをホストする TCP/IP ホストの名前です。 特定のサービス名について複数のリスナーで Oracle Real Application Clusters を使用しているときに、XAOpenString の MyHostName と MyPortNumber の値によって識別される Oracle リスナーが使用できない場合、odbc.ini ファイルの AlternateServers リストで定義した代わりの Oracle リスナーの試行も行われます。
- MyPortNumber は、Oracle データベース・リスナーが listen する TCP/IP ポートです。
- MyUserId は、ブローカーがデータベースに接続する際に使用するユーザー名でなければなりません。
ブローカーが使用するユーザー名は、いくつかの方法で定義できます。このファイルに正しい名前が指定されていることを確認してください。 ブローカーは、以下の条件をリストされている順序で調べて、ユーザー名を判別します。
- mqsisetdbparms コマンドを実行して定義されている、このデータ・ソース名 (DSN) の特定のユーザー名およびパスワード。
- mqsisetdbparms コマンドを実行して定義されている、すべての (DSN) のデフォルトのユーザー名およびパスワード。
- mqsicreatebroker コマンドに -u パラメーターを指定して定義されている、すべての DSN のデフォルトのユーザー名およびパスワード。
このパラメーターは、前のリリースからマイグレーションされたブローカーにのみ有効です。
- mqsicreatebroker コマンドに -i パラメーターを指定して定義されているブローカーのサービス・ユーザー名。
- MyPassword は、ユーザー名に関連したパスワードです。
- MyDataSourceName は、odbc.ini ファイルで定義される、データベースの ODBC データ・ソース名です。
- MyServiceName は、odbc.ini ファイルの MyDataSourceName によって参照される、スタンザ内のサービス名に設定された値です。
- スタンザ内の他のすべての行においてデフォルト値を受け入れます。 以下に例を示します。
- グローバル整合を Oracle に使用している場合:
- キュー・マネージャーを開始する環境において、ODBCINI 環境変数を可視に設定します。 ODBCINI 変数は、ブローカーが使用するのと同じファイルを参照する必要があります。
- オプションの追加プロパティー CTO=Value を、XAOpenString で使用できます。 CTO は、「接続タイムアウト」に設定される値で、Oracle XA スイッチ・ファイルが Oracle データベースから XA 要求への応答を待機する秒数を示します。 例えば、アクティブな Oracle インスタンスが突然失敗してソケット接続が停止したままになる場合に、ブローカーで遅延が長くなるのを防ぐためにタイムアウトを使用して、代わりの Oracle Real Application Clusters ノードにフェイルオーバーします。 Value は、XAOpenString で設定される Oracle セッション・タイムアウト sestm の値より大きい値に設定する必要があります。 このプロパティーを使用しない場合、またはゼロに設定されている場合、タイムアウトは発生しません (これは、デフォルトの動作です)。
Windows 32 ビット および Windows 64 ビット の場合、
- 「スタート」メニューから、WebSphere MQ Explorer を開きます。
- キュー・マネージャーの「プロパティー」ダイアログ・ボックスを開いてから、「XA リソース・マネージャー」を開きます。
- 「SwitchFile」フィールドに、以下の例に示されているようにスイッチ・ファイルの名前を入力します。以下の例で、install_dir は、ブローカーがインストールされている場所です。

- XAOpenString フィールドに、以下のストリングを貼り付けます。
ORACLE_XA+
+HostName=MyHostName
+PortNumber=MyPortNumber
+ServiceName=MyServiceName
+ACC=P/MyUserId/MyPassword
+sestm=100+threads=TRUE
+DataSource=MyDataSourceName
+K=2+
- XAOpenString フィールドで、値をご使用の構成に適した値に置き換えます。
- MyHostName は、Oracle データベース・リスナーをホストする TCP/IP ホストの名前です。 特定のサービス名について複数のリスナーで Oracle Real Application Clusters を使用しているときに、XAOpenString の MyHostName と MyPortNumber の値によって識別される Oracle リスナーが使用できない場合、odbc.ini ファイルの AlternateServers リストで定義した代わりの Oracle リスナーの試行も行われます。
- MyPortNumber は、Oracle データベース・リスナーが listen する TCP/IP ポートです。
- MyUserId は、ブローカーがデータベースに接続する際に使用するユーザー名でなければなりません。
ブローカーが使用するユーザー名は、いくつかの方法で定義できます。このファイルに正しい名前が指定されていることを確認してください。 ブローカーは、以下の条件をリストされている順序で調べて、ユーザー名を判別します。
- mqsisetdbparms コマンドを実行して定義されている、このデータ・ソース名 (DSN) の特定のユーザー名およびパスワード。
- mqsisetdbparms コマンドを実行して定義されている、すべての (DSN) のデフォルトのユーザー名およびパスワード。
- mqsicreatebroker コマンドに -u パラメーターを指定して定義されている、すべての DSN のデフォルトのユーザー名およびパスワード。
このパラメーターは、前のリリースからマイグレーションされたブローカーにのみ有効です。
- mqsicreatebroker コマンドに -i パラメーターを指定して定義されているブローカーのサービス・ユーザー名。
- MyPassword は、ユーザー名に関連したパスワードです。
- MyDataSourceName は、odbc.ini ファイルで定義される、データベースの ODBC データ・ソース名です。
- MyServiceName は、データ・ソース MyDataSourceName の ODBC 定義にあるサービス名に設定された値です。
以下に例を示します。
ORACLE_XA+
+HostName=diaz.hursley.ibm.com
+PortNumber=1521
+ServiceName=accounts_service
+ACC=P/wbrkuid/wbrkpw
+sestm=100+threads=TRUE
+DataSource=MYDB+K=2+
- ページ内の他のすべてのフィールドにおいてデフォルト値を受け入れます。
動的 XA 登録を実行するため、キュー・マネージャーおよびブローカーからのグローバル整合を使用する目的で Oracle データ・ソースを使用可能にすることを望む場合、AIX 上で環境変数 DDTEK_XA_DYNAMIC_REGISTRATION=1 を設定してください。

キュー・マネージャーの実行中には qm.ini は読み取り専用であるため、変更を適用するには、キュー・マネージャーを停止してから再始動します。 キュー・マネージャーを停止して再始動するには、次のコマンドを入力します。ここで、
queue_manager_name はキュー・マネージャーの名前です。
endmqm queue_manager_name
strmqm queue_manager_name
キュー・マネージャーが再始動したら、キュー・マネージャーのログで再始動に関連する警告をすべて確認します。
このログ・ファイルは /var/mqm/qmgrs/queue_manager_name/errors にあります。
ここで、queue_manager_name は再始動したキュー・マネージャーの名前です。
キュー・マネージャーが正しく再始動すると、qm.ini に加えた変更が適用されます。
変更を適用するには、キュー・マネージャーを停止してから再始動します。 キュー・マネージャーを停止して再始動するには、次のコマンドを入力します。ここで、
queue_manager_name はキュー・マネージャーの名前です。
endmqm queue_manager_name
strmqm -si queue_manager_name
キュー・マネージャーが再始動したら、キュー・マネージャーのログで再始動に関連する警告をすべて確認します。
このログ・ファイルは /var/mqm/qmgrs/queue_manager_name/errors にあります。
ここで、queue_manager_name は再始動したキュー・マネージャーの名前です。
キュー・マネージャーが正しく再始動すると、加えた変更が適用されます。
これで Oracle が、ブローカー・キュー・マネージャーがトランザクションを整合させるグローバル整合のために構成されました。
次に、グローバルに整合されたメッセージ・フローをブローカーにデプロイできます。