我的场景是——我将消息发布到队列中,一旦消息被使用,我就会将它发送到第三方中间件应用程序。如果该中间件应用程序已关闭,那么我发布的消息就没有用了。如果中间件应用程序关闭,我不想丢失该消息,而是希望它暂停或在队列中等待。请建议如何处理这种情况?
最佳答案
你应该像这样创建 session :
Session session = connection.createSession(false,
Session.CLIENT_ACKNOWLEDGE);
当您尝试将消息传递给您的第三方应用时:
如果有效,您应该确认消息。
如果它已关闭,您不应该确认它,这样 JMS 提供程序将能够重新传送它,并且消息不会丢失。
message.acknowledge();
关于java - 消息消费后出现错误,如何将消息保存在JMS Message Queue中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30266631/