您的位置:首页 > 其它

ActiveMQ使用STOMP协议的一个错误问题:Unexpected ACK received for message-id

2013-08-21 21:47 555 查看
使用某些语言环境下的stomp包(比如php python ruby),可能会出现如下问题:

Unexpected ACK received for message-id

这一般可能有两个原因。

1、没有按顺序发送ack,导致ActiveMQ认为你是发错了。

解决办法

1) 按顺序发ack

2) 设置为客户端独立确认模式(client-individual ack)

参见: (http://issues.apache.org/activemq/browse/AMQ-1874)

2、frame header的格式不对导致的。

一般都是多余的空格、\r 之类的。

stomp 1.0 规范时没要求,所以是合法的。

stomp 1.1 变严格了,这么写不合法,所以解析frame header出错。

解决办法:

1) 更新用的驱动包,看看是否解决了兼容性问题。

2) 修改源码,规范header的key-value拼接时,字符的合法性。

python的stomper在2.5+ fix了这个兼容性问题:
https://github.com/oisinmulvihill/stomper/commit/da64b9d76e39dfe899ded7ab504af26f2842cb77
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐