如何在 JBoss 里配置 IBM MQ

安装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

linux

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/631f7b8bf15bc65d25bbb7ede64cad06.html