首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何不使用Spring-JMS通过抛出异常从MQ中删除消息

如何不使用Spring-JMS通过抛出异常从MQ中删除消息
EN

Stack Overflow用户
提问于 2016-01-28 01:08:10
回答 2查看 861关注 0票数 0

我正在使用spring-jms messageListenerContainer来监听消息。当发生错误时,我想抛出一个异常并停止从MQ中删除消息。我只想对MQ使用AUTO_ACKNOWLEDGE会话。我如何才能做到这一点?应该抛出哪种类型的异常,以便消息不会从MQ中删除并再次重新发送?

EN

回答 2

Stack Overflow用户

发布于 2016-01-28 04:38:05

我们在项目中也有类似的要求。虽然我们使用IBM WMQ,但这将使您对如何实现这一点有所了解。

  1. 阅读了来自MQ的消息,比如#Queue1。read我指的是提取(读取和删除)消息,而不仅仅是浏览消息。在处理消息时,如果出现任何错误,则将消息推送到其他队列,例如#Queue2.
  2. Create,这是一个路由器,它将所有消息从#
  3. 发送到#Queue1。或者,您可以在处理#Queue1上的消息之前检查并处理#Queue2。

这就是我们如何在出现错误或异常的情况下一次又一次地重播相同的消息。

票数 0
EN

Stack Overflow用户

发布于 2016-01-28 14:35:30

使用AUTO_ACKNOWLEDGE模式时,消息在传递到应用程序后会自动从队列中删除。

使用@user2004685建议的中间队列需要额外的管道。我建议使用事务型会话。在事务下接收消息,如果在处理消息的过程中出现错误,则调用rollback(),以便消息可以重新投递。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35043695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档