我需要在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",但这些设置有效。