JMS消息重新投递到队列

3
我正在使用Jboss MQ在我的应用程序中。
我正在尝试处理重新传递到JMS队列的消息。 是否有一种方法可以在消费者(第一次接收消息)中设置原始消息中的某些值, 以便每当消息被重新传递时,我都可以读取该值并做出一些决策。
如果问题不清楚,请告诉我,我可以尝试详细解释。

1
一个例子会有帮助 :) - Gonzalo Garcia Lasurtegui
2个回答

6
不,JMS不是那样工作的。
你可以作为消费者(接收)、生产者(发送)或浏览器(查看)与队列进行交互。并没有将更改后的消息放回的操作。如果消费者在一个事务中工作,而该事务被回滚,那么这条消息将会出现“放回”的情况,但这只是因为它在队列中等待事务提交。
理论上,你可以为获取到的同一队列创建一个生产者,对其进行修改并向“自己”(一个消息驱动的bean?)发送它,但这将是一个不同的消息,只是具有相似的内容。并且它会到达队列的末尾。这样做显然是不推荐的。
最好将消息数据(至少是你感兴趣的部分)存储在数据库中,以便检测它是否是新的或重新传递的。

1
企业集成模式内容增强器(1)(2)可能会对您有所帮助。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接