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

Max*_*mus 3 jboss jms jbossmq java-ee jboss-mdb

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

我正在尝试处理重新传递给JMS队列的消息.有没有办法可以在消费者收到的原始消息中设置一些值(第一次收到消息)这样每当重新传递消息时,我都可以读取值并做出一些决定.

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

MaD*_*aDa 6

不,JMS不会那样工作.

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

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

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