我正在使用spring-jms messageListenerContainer来监听消息。当发生错误时,我想抛出一个异常并停止从MQ中删除消息。我只想对MQ使用AUTO_ACKNOWLEDGE会话。我如何才能做到这一点?应该抛出哪种类型的异常,以便消息不会从MQ中删除并再次重新发送?
发布于 2016-01-28 04:38:05
我们在项目中也有类似的要求。虽然我们使用IBM WMQ,但这将使您对如何实现这一点有所了解。
这就是我们如何在出现错误或异常的情况下一次又一次地重播相同的消息。
发布于 2016-01-28 14:35:30
使用AUTO_ACKNOWLEDGE模式时,消息在传递到应用程序后会自动从队列中删除。
使用@user2004685建议的中间队列需要额外的管道。我建议使用事务型会话。在事务下接收消息,如果在处理消息的过程中出现错误,则调用rollback(),以便消息可以重新投递。
https://stackoverflow.com/questions/35043695
复制相似问题