我在我的应用程序中使用Jboss MQ。
我正在尝试将重新传递的消息处理到JMS队列。 有没有办法我可以在消费者收到的原始邮件中设置一些值(我第一次收到邮件) 因此,无论何时重新传递消息,我都可以阅读该值并做出一些决定。
如果问题不明确,请告诉我,我可以尝试详细解释。
答案 0 :(得分:6)
不,JMS不会那样工作。
您作为消费者(接收者),生产者(发送者)或浏览器(偷看者)与队列进行交互。没有用于放回已更改消息的操作。如果消费者在回滚的事务中工作,则消息将显示为“放回”,但仅限于此,因为它在队列中等待事务的提交。
理论上,您可以为获取消息的同一队列创建一个生产者,修改它并将其“发送给自己”(消息驱动器bean?),但这将是不同的消息< / strong>,只有类似的内容。它会到达队列的末尾。当然不建议这样做。
最好在数据库中保留消息数据(至少是您感兴趣的部分),以便检测它是新的还是重新传送。
答案 1 :(得分:1)