Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerIBM MQ Connector v1.7
IBM MQ 用 Anypoint Connector (IBM MQ Connector) を使用すると、IBM MQ JMS 実装を使用している IBM MQ ブローカーに対してメッセージを送信できます。 この主な機能は次のとおりです。
特定の宛先でのパブリッシュ/サブスクライブパターンのサポート。
特定の宛先でのリスン/応答パターンのサポート。
特定の宛先での固定または一時応答キューを使用した Publish-Consume 応答パターンのサポート。
メッセージの非ブロックパブリッシュとコンシューム。
リリースノート: IBM MQ Connector リリースノート
Exchange: IBM MQ Connector
IBM 設定を作成する際には、使用する IBM 接続モードを選択します。
IBM MQ 8 の時点では、使用できる接続モードはクライアントとバインディングの 2 つのみです。
クライアント接続モードでは、Mule アプリケーションが実行されているシステムと同じシステムまたは他のシステムで動作している IBM MQ キューマネージャーに接続できます。 どちらの場合でも、IBM MQ Connector は IBM MQ キューマネージャーに TCP/IP 経由で接続します。
この接続モードでは、次のパラメーターを設定できます。
パラメーター | 必須 | デフォルト値 | 説明 |
---|---|---|---|
Host (ホスト) |
はい |
IBM MQ ブローカーが動作しているホスト。 |
|
Port (ポート) |
いいえ |
1414 |
キューマネージャーのリスナーポート。 |
Queue Manager (キューマネージャー) |
いいえ |
チャネル定義を選択する際に使用するキューマネージャー。 |
|
Channel (チャネル) |
いいえ |
接続先のチャネル名。 |
|
Connection Name List (接続名リスト) |
FALSE |
接続が失われたときにクライアントが再接続を試みるホスト。 |
<ibm-mq:config name="IBM_MQ_Config">
<ibm-mq:connection >
<ibm-mq:connection-mode >
<ibm-mq:client host="0.0.0.0" port="1414" queueManager="QM1" channel="DEV.ADMIN.SVRCONN" />
</ibm-mq:connection-mode>
</ibm-mq:connection>
</ibm-mq:config>
バインディング接続モードでは、同じシステムで動作している IBM MQ ブローカーに自動的に接続します。
このモード専用のパラメーターは、接続先のキューマネージャーで、必要に応じて設定します。IBM MQ ブローカーでデフォルトのキューマネージャーが設定されている場合は、この設定は必須ではありません。
<ibm-mq:config name="IBM_MQ_Config">
<ibm-mq:connection >
<ibm-mq:connection-mode >
<ibm-mq:binding queueManager="QM1" />
</ibm-mq:connection-mode>
</ibm-mq:connection>
</ibm-mq:config>
IBM MQ の config
では、メッセージをコンシュームまたはパブリッシュする際にデフォルトとして使用される複数のパラメーターを定義できます。これにより、設定に関連付けられているすべての操作に対してグローバルデフォルト動作を定義しておいて、カスタム動作を必要とする操作でのみパラメーターを変更することができます。
たとえば、この設定に関連付けられているすべての操作でメッセージをコンシュームする際のデフォルトの selector
動作を定義することができます。
<ibm-mq:config name="IBM_MQ_Config">
<ibm-mq:connection/>
<ibm-mq:consumer-config selector="JMSType = `INVOICE`"/>
<ibm-mq:producer-config timeToLive="60000"/>
</ibm-mq:config>
この場合、この設定に関連付けられているすべての consume または listener 操作はデフォルトで selector
を使用し、Publish または Publish-Consume が発生するたびに、送信されるメッセージの TTL は 60 秒に設定されます。
これらのすべてのプロパティは、必要であれば操作レベルで変更できます。 短い TTL でメッセージをパブリッシュするには、次の設定例を使用してパラメーターを変更します。
<ibm-mq:publish config-ref="IBM_MQ_Config" timeToLive="10000"/>
主要な共通パラメーターである JMS 仕様は、サポートされるバージョンである 2.0 と 1.1 のどちらかを選択します。この接続に関連付けられるブローカー実装でサポートされる仕様を選択しないと、接続が失敗します。
JMS 2.0 のみで利用可能な機能は、他の仕様では動作しません。 |
認証された接続を確立するには、接続要素でユーザー名とパスワードを設定する必要があります。
<ibm-mq:config name="IBM_MQ_Config">
<ibm-mq:connection username="<username>" password="<password>" >
<ibm-mq:connection-mode >
<ibm-mq:client
host="0.0.0.0"
port="1414"
queueManager="QM1"
channel="DEV.ADMIN.SVRCONN" />
</ibm-mq:connection-mode>
</ibm-mq:connection>
</ibm-mq:config>
ブローカーに接続して必要な操作を実行するため、JMS Connector は複数のセッション、コンシューマー、およびプロデューサーを作成します。これらをキャッシュして再利用することで、アプリケーションのパフォーマンスを高めることができます。そのため、IBM MQ Connector では、新しい接続を作成する際に使用するキャッシュ戦略を設定できます。デフォルトの戦略では、コンシューマーとプロデューサーの両方をキャッシュし、できるだけ多くのインスタンスを同時にメモリ内に保持します。
キャッシュ設定は、接続宣言内で直接カスタマイズすることができます。
<ibm-mq:config name="IBM_MQ_Config">
<ibm-mq:connection>
<ibm-mq:caching-strategy>
<ibm-mq:default-caching sessionCacheSize="100" consumersCache="false" producersCache="true"/>
</ibm-mq:caching-strategy>
</ibm-mq:connection>
</ibm-mq:config>
クライアント識別子は、接続およびそのオブジェクトを、クライアントの代わりにプロバイダーによって保持される状態と関連付けるものであり、共有されていない永続的なサブスクリプションを識別するために必要です。
<ibm-mq:config name="IBM_MQ_Config">
<ibm-mq:connection clientId="${env.clientId}"/>
</ibm-mq:config>
定義上、clientId によって識別されるクライアント状態は、同時に 1 つの接続によってのみ「使用中」となることができます。
|
重要: コネクタはどの特定の実装にもバインドされていないため、使用する接続の種別には関係なく、常に JMS クライアント実装を含むライブラリを設定する必要があります。
IBM MQ Connector を使用するには、外部 IBM MQ ライブラリを設定します。IBM MQ クライアントライブラリは、com.ibm.mq.jms.MQConnectionFactory
実装を提供している必要があります。
IBM MQ Allclient ライブラリを使用します。 |
たとえば、次のように設定します。
<dependency>
<groupId>com.ibm.mq</groupId>
<artifactId>com.ibm.mq.allclient</artifactId>
<version>9.0.5.0</version>
</dependency>