SpringJMS-关于设置持久订阅和共享订阅的默认消息侦听器容器问题

SpringJMS-关于设置持久订阅和共享订阅的默认消息侦听器容器问题,spring,ibm-mq,spring-jms,Spring,Ibm Mq,Spring Jms,我开发了一个Spring集成应用程序,它运行在PCF的多个实例中 应用程序侦听主题并处理消息 我对主题连接使用MqConnectionFactory,对侦听器消息使用Spring-JMS-DefaultMessageListenerContainer 在持久订阅上-具有相同的客户端ID 应用程序的第一个实例在没有任何问题的情况下运行并处理消息。 另一个例子,我得到以下错误 2429 - MQRC_SUBSCRIPTION_IN_USE 当我有不同的客户机ID时,应用程序的每个实例都会获得相同

我开发了一个Spring集成应用程序,它运行在PCF的多个实例中

应用程序侦听主题并处理消息

我对主题连接使用
MqConnectionFactory
,对侦听器消息使用Spring-JMS-
DefaultMessageListenerContainer

在持久订阅上-具有相同的客户端ID

应用程序的第一个实例在没有任何问题的情况下运行并处理消息。 另一个例子,我得到以下错误

2429 - MQRC_SUBSCRIPTION_IN_USE 
当我有不同的客户机ID时,应用程序的每个实例都会获得相同的消息副本,从而导致重复处理—运行多个实例的想法是共享负载并并行处理

启用共享订阅和持久订阅时-使用相同的客户端ID

每个实例都会出现以下错误。 由于发生异常,JMSWMQ2025未能订阅主题

reason '2432' MQRC_SUB_ALREADY_EXIST. 

对于非共享订阅,您必须具有不同的客户端ID和/或订阅名称,并且正如预期的那样,每个已发布消息的副本将传递给每个订阅服务器。当您将其更改为共享订阅时,需要确保删除原始的非共享持久订阅,如果尚未删除,则需要2432。正在共享或未共享的订阅的状态在创建订阅时确定,创建订阅后将恢复,因此如果不首先删除非共享订阅,则无法切换到共享。Mvs我的评论是否描述了您面临的问题,如果是这样的话,我会写一个带有这些细节的答案和一个到描述的链接。@JoshMc-我做了以下更改,它开始工作时没有任何问题。未提供客户端id,因为根据JMS 2.0文档,它是可选的,并将持久共享订阅设置为true。感谢您的反馈,但您确实必须摆脱以前的订阅或更改订阅名称,以绕过
MQRC\u SUB\u ready\u EXIST
错误,对吗?请注意,如果您没有删除先前的sub,只是更改了名称,那么很可能您有一个“孤立”订阅,在没有消费者的情况下接收消息。