【问题标题】:JBOSS EAP6.2 to IBM MQ IntegrationJBOSS EAP6.2 到 IBM MQ 集成
【发布时间】:2014-10-07 15:49:10
【问题描述】:

我们计划将我们的应用程序从 WebSphere 迁移到 JBOSS EAP6.2,作为其中的一部分,我希望在域模式下将 WMQ7.5.2 集成到 JBOSS EAP,我搜索了 JBOSS 论坛并在我的 domain.xml ,但我的疑问在下面

我有 2 个用于 JBOSS EAP 的节点/Unix 服务器

NODE 1 有以下内容

1) JBOSS EAP 安装并在域模式下运行(Master),修改 domain.xml , host.xml

2) 服务器 1 - 服务器组的一部分

3) QMGR A

NODE 2 有以下内容

1) JBOSS EAP 已安装并在从模式下运行,修改了 host.xml

2) 服务器 2 - 与服务器 1 属于同一服务器组

3) QMGR B

我通过更改 domain.xml 中的参数来集成 IBM WMQ

<subsystem xmlns="urn:jboss:domain:resource-adapters:1.1">
        <resource-adapters>
            <resource-adapter id="wmq.jmsra.rar">
                <archive>
                    wmq.jmsra.rar
                </archive>
                <transaction-support>NoTransaction</transaction-support>
                <config-property name="logWriterEnabled">
                    true
                </config-property>
                <config-property name="traceEnabled">
                    true
                </config-property>
                <config-property name="traceLevel">
                    3
                </config-property>
                <config-property name="connectionConcurrency">
                    5
                </config-property>
                <config-property name="maxConnections">
                    15
                </config-property>
                <connection-definitions>
                    <connection-definition class-name="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl jndi-name="java:jboss/XXXPrimaryQCF" enabled="true" use-java-context="true" pool-name="APTPPrimaryQCF">
                   <config-property name="port">
                          1420
                   </config-property>
                   <config-property name="hostName">
                     XX.XX.XX.XX1
                   </config-property>
                   <config-property name="channel">
                        SYSTEM.DEF.SVRCONN
                   </config-property>
                   <config-property name="transportType">
                        CLIENT
                    </config-property>
                    <config-property name="queueManager">
                      XXXXXX1
                    </config-property>
                 </connection-definition>

                 <connection-definition class-name="com.ibm.mq.connector.outbound.ManagedConnectionFactoryImpl jndi-name="java:jboss/XXXSecondaryQCF" enabled="true" use-java-context="true" pool-name="APTPSecondaryQCF">
                   <config-property name="port">
                          1420
                   </config-property>
                   <config-property name="hostName">
                     XX.XX.XX.XX2
                   </config-property>
                   <config-property name="channel">
                        SYSTEM.DEF.SVRCONN
                   </config-property>
                   <config-property name="transportType">
                        CLIENT
                    </config-property>
                    <config-property name="queueManager">
                      XXXXXX2
                    </config-property>
                 </connection-definition>
                 <admin-objects>                     
                 <admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:jboss/jms/XXXWriterPrimaryQueue" pool-name="OdsWriterQueue">
                    <config-property name="baseQueueManagerName">
                            XXXXXX1
                    </config-property>
                    <config-property name="baseQueueName">
                            XX.XQ.QA
                    </config-property>
                 </admin-object>
                 <admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:jboss/jms/XXXWriterSecondaryQueue" pool-name="OdsWriterQueue">
                    <config-property name="baseQueueManagerName">
                            XXXXXX2
                    </config-property>
                    <config-property name="baseQueueName">
                            XX.XQ.QB
                    </config-property>
                 </admin-object>

                 <admin-object class-name="com.ibm.mq.connector.outbound.MQQueueProxy" jndi-name="java:jboss/jms/XXXXWriterPrimaryQueue" pool-name="OdsWriterQueue">
                    <config-property name="baseQueueManagerName">
                           XXXXXX1
                    </config-property>
                    <config-property name="baseQueueName">
                            XX.XQ.QA
                    </config-property>
                 </admin-object>
              </admin-objects>
            </resource-adapter>
        </resource-adapters>
    </subsystem>


 <mdb>
       <resource-adapter-ref resource-adapter-name="wmq.jmsra.rar"/>
       <bean-instance-pool-ref pool-name="mdb-strict-max-pool"/>
 </mdb>


 <subsystem xmlns="urn:jboss:domain:ee:1.1">
 <spec-descriptor-property-replacement>true</spec-descriptor-property-replacement>
 <jboss-descriptor-property-replacement>true</jboss-descriptor-property-replacement>
</subsystem>

在我们的 WebSphere 环境中,我们在 Node Scope 创建了 JMS 资源,因此服务器 1 仅与 QMGR A 通信,服务器 2 仅与 QMGR B 通信,但我不确定如何在 JBOSS 中配置此范围,以便服务器 1在节点 1 上将只有引用 QMGR1 和节点 2 上的服务器 2 将引用 QMGR2 ,请指导我

【问题讨论】:

  • 小修正是我的问题,如下所示 NODE 2 具有以下内容 1) JBOSS EAP 安装并以从属模式运行,修改了 host.xml 2) 服务器 2 - 与服务器属于同一服务器组1 3) QMGR B
  • 我已经编辑了您的问题文本,以包括您上述评论适用的更正。
  • 根据问题的描述,我认为这是JBOSS配置问题,而不是MQ相关配置。单台服务器是否实现了 JBOSS-MQ 连接?
  • 是的,在独立模式下运行单个 jboss eap 实例,我可以实现 jboss-mq 连接

标签: jboss7.x ibm-mq jboss-eap-6


【解决方案1】:

根据我所看到的配置:

hostName 和 queueManager 属性都允许表达式, 这意味着您可以在您的个人资料中将它们定义为 ${hostName}${queueManager}, 并在 server-config 级别定义 system properties hostName 和 queueManager,以便在服务器启动时,将表达式替换为相关 server-config 的特定值。 只要允许表达式,原则就可以应用于其他变量,您可以使用 :read-resource-description() 命令在 CLI 中检查,您正在寻找“允许表达式”信息,并将值设置为真的。

关于表达式的一些信息:Expressions - JBoss AS 7.1 - Project Documentation Editor

如果这些信息足够清楚,请告诉我,如果需要,我可以更新一些示例。

最后一个小警告,您是否只为出站(生成消息)设置配置? 因为如果你也通过这个配置来配置监听器,你最终会报错。

希望这会有所帮助。

【讨论】:

  • 你好 Oliver,应用程序逻辑是这样的,它从文件中读取记录并将每条记录转换为消息并写入队列,然后在内部另一个异步线程使用 MDB/ 使用队列中的消息监听器并将它们发送到后端系统
  • 好的,感谢您提供额外的上下文。该警告与消费者的配置有关。如您所见,配置中使用的类用于出站消息。入站(AFAIK)无法在 JBoss 中配置,但需要在单独的 xml 中配置。
  • 让我知道建议的解决方案是否适合您的需求,和/或您是否需要更多信息
  • 对于 Inbound,我们现在已经改变了内部逻辑,我们使用骆驼从队列中读取消息,我会尝试你今天的变化,看看它是否适用于我的情况。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-02-08
  • 2018-06-27
  • 2020-04-02
  • 2011-01-30
  • 2022-11-08
  • 1970-01-01
  • 2015-11-24
相关资源
最近更新 更多