Camel IBM-MQ Durable订阅主题

时间:2018-02-05 01:07:17

标签: apache-camel ibm-mq spring-jms

使用Camel 2.19.3 ......

我想从TOPIC(IBM-MQ)读取。我设置了两个 " durableSubscriptionName"和客户端ID。

from ("jms:topic:TEST/TOPIC1?durableSubscriptionName=TestSubscription1&clientId=101021&exchangePattern=InOnly")

但是,DefaultJmsMessageContainerFactory给了我一个错误:

JMWCC0101: The clientID cannot be null 

我已经使用Spring JmsTemplate直接尝试了相同的配置 在连接上设置clientId,这是有效的。

我是否需要指定自定义" connectionFactory"?看代码 DefaultJmsMessageContainerFactory,它看起来应该处理设置 clientID到底层连接。

对我应该寻找什么的任何想法?

1 个答案:

答案 0 :(得分:0)

对我们有用的是将客户端ID分配给连接工厂,而不是Camel JMS组件,也不分配给特定的客户。在我们的用例中,我们只需要这种粒度级别。

由于我们使用IBM Liberty,因此我们在server.xml中添加了一个属性,但可能还有其他方法可以完成同样的事情。

<jmsConnectionFactory ..... >
    <properties.wmqJms ... clientId="99999"  ... />
</jmsConnectionFactory>