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

标签 java spring tomcat ibm-mq

我需要在 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 了解不多,但我有 WebSphere MQ 背景。查看您提供的上下文,我认为以下内容适用于多实例队列管理器。

我正在将 CRHOSTS 设置为多个连接名称。我假设在 blah.blah.com 主机上,队列管理器的 Activity 实例在端口 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"
/>

希望这对您有所帮助。

关于java - 如何使用 Spring 连接到 Tomcat 上的多实例队列管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20402893/

相关文章:

java - 我的代码是否遵循了适当的逻辑

java - 可选中的 ResponseEntity 为 ok 或 noContent,具体取决于是否存在

spring - Spring Boot捕获多个异常并作为错误响应发送

java - 一台机器上有多少个Spring Boot应用

eclipse - 与 watch 事件 'sun.nio.fs.AbstractWatchKey$Event@3f5ed469' 不匹配,路径 'D:\apache-tomcat-7.0.50\logs\log_file.log'

java - 转换为原始类型或其包装类之间是否存在实际性能差异?

java - 传递方法参数时自动类型转换

java - 如何将此代码从 jsp 页面更改为具有操作控制的 servlet 页面?

java - Spring Boot 2.1.1 : UnsatisfiedLinkError: org. apache.tomcat.jni.SSL.renegotiatePending

java - 在 linux 中运行 startup.sh 时权限被拒绝