MDB起動仕様で.bindingsファイルを使用することは可能ですが、これは実用的ではないことが分かります。 .bindingsファイルとMDBアクティベーション仕様の両方で宛先を指定できますが、接続ファクトリは指定できません。接続ファクトリを構成する属性(すなわち、ホスト、ポート、チャネルなど)は、起動仕様で個別に設定されます。
できることは、.bindingsファイルを使用して、JMSメッセージングブリッジをMQからJBossに設定することです。その後、あなたのMDBはちょうどローカルのHornetQの宛先を聞きます。この作業を行うには、次のようにする必要があります。
1)IBM MQクライアントモジュールを作成します。メッセージングブリッジはIBM JCAを使用しません。 UNIX MQサーバーでは、/opt/mqm/java/lib/
ディレクトリにクライアントjarがあります。
私は、次のjarファイルでモジュールを作成:
./system/layers/base/com/ibm/wmqclient75
./system/layers/base/com/ibm/wmqclient75/main
./system/layers/base/com/ibm/wmqclient75/main/com.ibm.mq.tools.ras.jar
./system/layers/base/com/ibm/wmqclient75/main/com.ibm.mq.axis2.jar
./system/layers/base/com/ibm/wmqclient75/main/com.ibm.mq.headers.jar
./system/layers/base/com/ibm/wmqclient75/main/ldap.jar
./system/layers/base/com/ibm/wmqclient75/main/CL3Nonexport.jar
./system/layers/base/com/ibm/wmqclient75/main/providerutil.jar
./system/layers/base/com/ibm/wmqclient75/main/connector.jar
./system/layers/base/com/ibm/wmqclient75/main/jta.jar
./system/layers/base/com/ibm/wmqclient75/main/com.ibm.mq.soap.jar
./system/layers/base/com/ibm/wmqclient75/main/com.ibm.mq.jms.Nojndi.jar
./system/layers/base/com/ibm/wmqclient75/main/com.ibm.mq.jar
./system/layers/base/com/ibm/wmqclient75/main/com.ibm.mqjms.jar
./system/layers/base/com/ibm/wmqclient75/main/rmm.jar
./system/layers/base/com/ibm/wmqclient75/main/jms.jar
./system/layers/base/com/ibm/wmqclient75/main/com.ibm.mq.commonservices.jar
./system/layers/base/com/ibm/wmqclient75/main/fscontext.jar
./system/layers/base/com/ibm/wmqclient75/main/com.ibm.mq.pcf.jar
./system/layers/base/com/ibm/wmqclient75/main/CL3Export.jar
./system/layers/base/com/ibm/wmqclient75/main/jndi.jar
./system/layers/base/com/ibm/wmqclient75/main/com.ibm.mq.jmqi.jar
./system/layers/base/com/ibm/wmqclient75/main/dhbcore.jar
./system/layers/base/com/ibm/wmqclient75/main/module.xml
マイmodule.xmlファイル:
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.0" name="com.ibm.wmqclient75">
<resources>
<resource-root path="com.ibm.mq.commonservices.jar" />
<resource-root path="com.ibm.mq.headers.jar" />
<resource-root path="com.ibm.mq.jar" />
<resource-root path="com.ibm.mq.jmqi.jar" />
<resource-root path="com.ibm.mqjms.jar" />
<resource-root path="com.ibm.mq.pcf.jar" />
<resource-root path="connector.jar" />
<resource-root path="dhbcore.jar" />
<resource-root path="fscontext.jar"/>
<resource-root path="providerutil.jar"/>
</resources>
<dependencies>
<!-- add the dependencies required by JMS Bridge code -->
<module name="javax.api"/>
<module name="javax.resource.api"/>
<module name="javax.jms.api"/>
<module name="javax.transaction.api"/>
<module name="org.jboss.remote-naming"/>
<!-- we depend on org.hornetq module since we will send messages to -->
<!-- the HornetQ server embedded in the local AS7 instance -->
<module name="org.hornetq"/>
</dependencies>
</module>
2)あなたは、あなたのブリッジを設定ロードできます
<subsystem xmlns="urn:jboss:domain:messaging:1.4">
....
....
....
<jms-bridge name="wmqBridge" module="com.ibm.wmqclient75">
<target>
<connection-factory name="XAConnectionFactory"/>
<destination name="jms/queue/test"/>
</target>
<source>
<connection-factory name="mqCF"/>
<destination name="mqQueue"/>
<context>
<property key="java.naming.factory.initial" value="com.sun.jndi.fscontext.RefFSContextFactory"/>
<property key="java.naming.provider.url" value="file:///${jboss.server.data.dir}/bindings/"/>
</context>
</source>
<quality-of-service>ONCE_AND_ONLY_ONCE</quality-of-service>
<failure-retry-interval>500</failure-retry-interval>
<max-retries>1</max-retries>
<max-batch-size>1</max-batch-size>
<max-batch-time>1000000</max-batch-time>
<add-messageID-in-header>true</add-messageID-in-header>
</jms-bridge>
</subsystem>
私は私のモジュールを参照してください:
<jms-bridge name="wmqBridge" module="com.ibm.wmqclient75">
先との接続ファクトリーのための
私の名前、.bindingsファイルで見つかったとして:
<connection-factory name="mqCF"/>
<destination name="mqQueue"/>
私はbindings
という名前の標準データディレクトリの下にディレクトリを作成し、その中で.bindingsファイルを置い:
<property key="java.naming.provider.url" value="file:///${jboss.server.data.dir}/bindings/"/>
これは、アクセスできる宛先にメッセージをローカルに届きます。