要重新传递到队列的JMS消息

时间:2011-08-12 18:38:41

标签: java-ee jboss jms jboss-mdb jbossmq

我在我的应用程序中使用Jboss MQ。

我正在尝试将重新传递的消息处理到JMS队列。 有没有办法我可以在消费者收到的原始邮件中设置一些值(我第一次收到邮件) 因此,无论何时重新传递消息,我都可以阅读该值并做出一些决定。

如果问题不明确,请告诉我,我可以尝试详细解释。

2 个答案:

答案 0 :(得分:6)

不,JMS不会那样工作。

您作为消费者(接收者),生产者(发送者)或浏览器(偷看者)与队列进行交互。没有用于放回已更改消息的操作。如果消费者在回滚的事务中工作,则消息将显示为“放回”,但仅限于此,因为它在队列中等待事务的提交。

理论上,您可以为获取消息的同一队列创建一个生产者,修改它并将其“发送给自己”(消息驱动器bean?),但这将是不同的消息< / strong>,只有类似的内容。它会到达队列的末尾。当然不建议这样做。

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

答案 1 :(得分:1)

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