安装WebSphere MQ资源适配器:
从安装目录复制wmq.jmsra.rar文件到服务器的部署目录中,例如:<安装路径>/server/default/deploy。此时资源适配器将会自动选择服务器。
安装WebSphere MQ扩展事务客户端:
WebSphere MQ扩展事务客户端允许你使用XA分布式事务,并用客户端模式连接到WebSphere MQ队列管理器。要将客户端安装在JBoss,需要从安装目录复制com.ibm.mqetclient.jar文件到服务器的lib目录中,例如<安装路径>/server/default/lib。
为你的应用程序配置资源适配器:
WebSphere MQ资源适配器允许你定义一些全局的属性。在JBoss中JCA出站流的资源定义在-ds.xml文件,名为wmq.jmsra-ds.xml。
此文件的概要如下:
<?xml version="1.0" encoding="UTF-8"?>
<connection-factories>
<!-- mbeans defining JCA administered objects -->
<mbean/>
<!-- JCA Connection factory definitions -->
<tx-connection-factory/>
</connection-factories>
从上可以看出JCA连接工厂的定义在<tx-connection-factory>元素,而且JMS队列和主题被定义在JCA的管理对象mbean里面。
简单的两个队列-入站和出站的完整示例如下:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<connection-factories>
<tx-connection-factory>
<jndi-name>jms/MyAppConnectionFactory</jndi-name>
<rar-name>wmq.jmsra.rar</rar-name>
<use-java-context>true</use-java-context>
<connection-definition>javax.jms.QueueConnectionFactory</connection-definition>
<min-pool-size>8</min-pool-size>
<max-pool-size>36</max-pool-size>
<config-property type="java.lang.String">${channel}</config-property>
<config-property type="java.lang.String">${hostName}</config-property>
<config-property type="java.lang.String">1414</config-property>
<config-property type="java.lang.String">${queueManager}</config-property>
<config-property type="java.lang.String">CLIENT</config-property>
<config-property type="java.lang.String">munish</config-property>
<security-domain-and-application>JmsXARealm</security-domain-and-application>
<xa-transaction/>
</tx-connection-factory>
<mbean code="org.jboss.resource.deployment.AdminObject" >
<attribute>jms/IncomingQueue</attribute>
<depends optional-attribute-name="RARName">jboss.jca:name='wmq.jmsra.rar',service=RARDeployment</depends>
<attribute>javax.jms.Queue</attribute>
<attribute>
baseQueueManagerName=${queueManager}
baseQueueName=MY.APP.INBOUND.QUEUE
</attribute>
</mbean>
<mbean code="org.jboss.resource.deployment.AdminObject">
<attribute>jms/OutgoingQueue</attribute>
<depends optional-attribute-name="RARName">jboss.jca:name='wmq.jmsra.rar',service=RARDeployment</depends>
<attribute>javax.jms.Queue</attribute>
<attribute>
baseQueueManagerName=${queueManager}
baseQueueName=MY.APP.OUTBOUND.QUEUE
</attribute>
</mbean>
</connection-factories>
在JBoss启动脚本中占位符属性被定义为:
-Dchannel=MQTEST -DhostName=localhost -DqueueManager=TST_MGR