如何使用Spring连接到Tomcat上的多实例队列管理器



我需要在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吗?我需要什么设置?

我对Tomcat了解不多,但我来自WebSphereMQ背景。查看您提供的上下文,我认为以下内容适用于多实例队列管理器。

我正在将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"
/>

希望这能有所帮助。

所以答案是:

<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开了一张罚单,他们说他们网站上的文档不正确(顺便说一句,他们想要一张罚单来修复他们的文档!)。

我试过沙石的"CRHOSTS",但它不起作用,CRSHOSTS起作用了。不知道为什么。我们还不得不将罐子升级到7.5。*。我不确定"CROPT"one_answers"CRT",但这些设置有效。

最新更新