12.16. IBM Websphere MQ が拡張トランザクションクライアントを使用するように設定する
前提条件
- IBM からの Extended Transactional Client バンドル(デフォルトの Websphere MQ インストールの一部ではない)は、アプリケーションサーバーと外部クライアントアプリケーションのクラスパスにインストールする必要があります。
- XA 接続ファクトリーは WMQ JNDI 名前空間に設定する必要があります。を参照してください http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae/umj_pjcfm.html。(XA 接続ファクトリーを設定したら、JNDI 接続プロパティーの connection-factory プロパティーで JNDI 名を使用して参照できます。)
手順12.7 タスク
jms-jca-provider 設定の編集
テキストエディターでjboss-esb.xmlファイルを編集します。jms-jca-provider 設定がどのように拡張トランザクションクライアント設定を検索するかを示します。(この例では、WMQ JNDI 名前空間で設定された XA 接続ファクトリーは WMQXAConnectionFactory と呼ばれます。)注記インフロー関連の設定(アダプター、<activation-config> など)は、拡張クライアント設定とは関係がないため、意図的に省略されました。<jms-jca-provider name="WMQ" connection-factory="WMQXAConnectionFactory" jndi-URL="wmqserver:1414/CHANXA_SEND" jndi-context-factory="com.ibm.mq.jms.context.WMQInitialContextFactory"> <property name="max-xa-sessions-per-connection" value="1" /> <jms-bus busid="ordersGwChannel"> <jms-message-filter dest-type="QUEUE" dest-name="ORDERS" transacted="true"/> </jms-bus> <activation-config> <!-- Used by inflow... not relevant to client See section on JMS and JCA. --> </activation-config> </jms-jca-provider>JMSRouter で使用する設定
以下の例は、JMSRouter で同じ XA 接続ファクトリーを使用する方法を示しています。<action name="routeToORDERSQueue" class="org.jboss.soa.esb.actions.routing.JMSRouter"> <property name="jndi-context-factory" value="com.ibm.mq.jms.context.WMQInitialContextFactory"/> <property name="jndi-URL" value="wmqserver:1414/CHANXA_SEND"/> <property name="connection-factory" value="WMQXAConnectionFactory"/> <property name="jndiName" value="ORDERS"/> <property name="max-xa-sessions-per-connection" value="1"/> <!-- etc... --> </action>重要Websphere MQ と XA に関する重要な点は、同じ Queue Manager Channel でメッセージの取得と配置の両方をサポートしていないことです。このため、XA トランザクションのコンテキストでメッセージを Websphere MQ 宛先に取得または配置するコンポーネントごとに専用チャネルを設定することが推奨されます。jboss-esb.xmlの max-xa-sessions-per-connection プロパティーを1に設定します。保存
ファイルを保存して終了します。- Websphere MQ 宛先にメッセージを取得または送信するコンポーネントごとに、専用のキューマネージャーチャネルを設定します。
- 各 Websphere MQ 宛先の GET および PUT プロパティーが
Inhibitに設定されていないことを確認します。(これは、宛先が作成され、MROS がメッセージを取得または送信できない場合に発生します。)