2
回答
JMS,Queue,阻塞队列发生异常(JBOSS环境)
华为云实践训练营,热门技术免费实践!>>>   

具体情况是这样的.

使用JBOSS AS 7.JMS,使用PTP的Queue.

正常情况下,队列的消息都是按序发送,读取的.

现在JBOSS的JMS里有10条消息,从1~~10. 1为第一条数据.

但是在读取JBOSS的第一条数据"1"的时候,读取失败,这个时候JMS的"1"这条数据还在不在?

仍然是上面的情况,但在读取失败后,这个JBOSS服务器关闭了.那么JBOSS重启后,这个JMS的消息"1"还存在不存在?

如果我描述不清晰的话请大家提醒下...汗.先谢谢大家.

举报
Zhao-Qian
发帖于5年前 2回/1K+阅
共有2个答案 最后回答: 5年前
Queue当读取失败应该还在的.直到有一个client接收了这个Message
--- 共有 5 条评论 ---
Zhao-Qian我明白你的意思了.我刚才说JMS的接收数据,可能你误会了.我意思是Session session=conn.createSession(false,Session.Auto_AcKnowledge);后面是Auto,Client,Dups不是有三种方式吗?我意思是说这个JMS的机制,开发者肯定不用去手写代码返回信息.我意思是说JMS内部机制应该会从消费者端返回接收成功的信息给生产者吧? 5年前 回复
Zhao-Qian回复 @震秦 : 汗,这个我肯定是知道的.我用的是JBOSS的HornetQ.现在是在试验我说的这种情况,因为会影响到后续的设计. 5年前 回复
震秦回复 @Credo : 你用的什么?Spring? 应该不需要你返回任何数据,jms有自己的协议知道消息是否成功消费。我用的activemq,没用过jboss还不了解你的情况。jms中queue和topic是不同的,希望你没弄错。 5年前 回复
Zhao-Qian按照JMS的规则,是不是客户端接收后,还得返回个接收信息,JMS才会清楚掉刚才发送的那条信息? 5年前 回复
Zhao-Qian嗯,下午我想法子试试. 5年前 回复
顶部