【问题标题】:How do I connect to a Multi-Instance Queue Manager on Tomcat using Spring?如何使用 Spring 连接到 Tomcat 上的多实例队列管理器?
【发布时间】:2014-03-21 13:03:20
【问题描述】:

我需要在 Tomcat 服务器上连接一个多实例队列管理器。我已经找到了我必须设置的各种“属性”,但是它们去哪里了? Tomcat,在服务器 XML 中有一些设置,但 IBM 文档中所需的大部分设置都没有映射。目前我们已经像这样连接了一个“单个”实例队列:

<Resource 
     name="jms/TelematicsQCF" 
     CHAN="JAVA.Z1LC.CLIENT"
     HOST="blah.blah.com" 
     PORT="1111" 
     QMGR="MQB3" 
     TRAN="1" auth="Container"
     description="JMS Queue Connection Factory for sending messages"
     factory="com.ibm.mq.jms.MQQueueConnectionFactoryFactory"
     type="com.ibm.mq.jms.MQQueueConnectionFactory"
/>

如何连接多实例?并且,我还可以使用 Spring DefaultMessageListenerContainer 吗?并且(哦,伙计...)我需要什么设置?

【问题讨论】:

    标签: java spring tomcat ibm-mq


    【解决方案1】:

    我没有太多的 Tomcat 知识,但我来自 WebSphere MQ 背景。查看您提供的上下文,我认为以下内容适用于多实例队列管理器。

    我将 CRHOSTS 设置为多个连接名称。我假设,在 blah.blah.com 主机上,队列管理器的活动实例在端口 1414 上运行并侦听,备用实例在 b2.b3.com 上运行并在端口 1544 上侦听。

    CROPT 是重新连接选项,设置为WMQ_CLIENT_RECONNECT_Q_MGR,其值为67108864。您可以从cmqc.h 文件中找到这些常量的值。

    CRT 是重新连接超时值,它告诉客户端将尝试重新连接多长时间。超时时间过后,如果连接尝试不成功,客户端将停止重新连接。在这种情况下,我将值设置为 500 秒。

    <Resource 
         name="jms/TelematicsQCF" 
         CHAN="JAVA.Z1LC.CLIENT"
         CRHOSTS="blah.blah.com(1414), b2.b3.com(1544)" 
         CROPT="67108864" 
         CRT="500"
         QMGR="MQB3" 
         TRAN="1" auth="Container"
         description="JMS Queue Connection Factory for sending messages"
         factory="com.ibm.mq.jms.MQQueueConnectionFactoryFactory"
         type="com.ibm.mq.jms.MQQueueConnectionFactory"
    />
    

    希望这会有所帮助。

    【讨论】:

    【解决方案2】:

    所以答案是这样的:

    <Resource name="jms/XXXQCF1" 
        CHAN="TMAX.CHANNEL" 
        CRSHOSTS="blah1.example.com(1420),blah2.example.com(1420)" 
        CROPT="67108864" 
        CRT="500" 
        QMGR="tmax.lrd.qmgr.a" 
        TRAN="1" 
        auth="Container" 
        description="JMS Queue Connection Factory for sending messages" 
        factory="com.ibm.mq.jms.MQQueueConnectionFactoryFactory"
        type="com.ibm.mq.jms.MQQueueConnectionFactory" />
    

    请注意,上面的 Shashi 有“CRHOSTS”,IBM 文档也有相同的,但是当我们尝试它时它不起作用。我们给 IBM 开了一张票,他们说他们网站上的文档不正确(顺便说一句,他们想要一张票来修复他们的文档!)。

    我尝试了 Shashi 的“CRHOSTS”,但它不起作用,CRSHOSTS 确实有效。不知道为什么会这样。我们还必须将我们的 jar 升级到 7.5.*。 “CROPT”和“CRT”我不确定,但这些设置有效。

    【讨论】:

      猜你喜欢
      • 2013-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多