wso2mb:持久订阅者的错误

时间:2015-06-16 10:10:40

标签: jms wso2 wso2esb esb wso2mb

我使用的是WSO2MB 2.1.1版。

我有两个使用持久订阅订阅主题队列的ESB进程。

现在,这些流程已经重新部署,他们无法再听取这个主题了。

在ESB日志中,我看到:

TID: [0] [ESB] [2015-06-16 12:07:14,364]  INFO {org.wso2.andes.client.AMQConnection} -  Unable to connect to broker at tcp://localhost:5822 {org.wso2.andes.client.AMQConnection}
org.wso2.andes.AMQTimeoutException: Server did not respond in a timely fashion [error code 408: Request Timeout]

在MB日志中,我看到:

  TID: [0] [MB] [2015-06-16 12:02:39,015]  INFO {org.wso2.andes.server.protocol.AMQProtocolEngine} -  Cannot subscribe to queue clientID:NewCaseUpdateLocation as it already has an existing exclusive consumer whilst processing:[BasicConsumeBodyImpl: ticket=0, 
queue=clientID:NewCaseUpdateLocation, consumerTag=1, noLocal=false, noAck=false, exclusive=true, nowait=false, arguments=null] 
{org.wso2.andes.server.protocol.AMQProtocolEngine}

如何重新注册此订阅,或强行删除旧订阅?

在MB中,我无法取消注册,因为注册是从ESB完成的。

1 个答案:

答案 0 :(得分:0)

这似乎是因为之前的持久订阅未正确停用(报告类似问题here)因此,重新部署MB时,不允许为两个订阅者提供相同的持久订阅ID,除非它是{{ 3}}

在病房MB 3.1.0的旁注中,您可以从MB控制台关闭活跃的持久订阅者。