2011-08-12 220 views
3

我在我的应用程序中使用Jboss MQ。JMS消息重新传递到队列

我正在尝试处理向JMS队列重传的消息。 有没有一种方法可以在消费者收到的原始消息中设置一些值(第一次收到消息) 因此,无论何时消息被重新发送,我都可以读取值并作出一些决定。

请让我知道如果问题不清楚,我可以尝试详细解释。

+1

一个例子会帮助:) –

回答

6

不,JMS不能这样工作。

您可以作为消费者(接收),生产者(发送)或浏览器(窥视)与队列交互。没有操作来放回已更改的消息。如果消费者在回滚的事务中工作,那么消息将显示为“放回”,但这只是因为它正在队列中等待事务的提交。

理论上,您可以为获得该消息的同一队列创建一个生产者,对其进行修改并将其发送给“您自己”(消息驱动bean?),但这会是不同的消息,只有相似的内容。它会到队列的尽头。当然不建议这样做。

最好将消息数据(至少是你感兴趣的部分)保存在数据库中,以便检测它是新的还是重新发送的。

1

企业集成模式Content Enricher(1)(2)可能对您有所帮助。