【问题标题】:JMS Listener & Sender - Spring FrameworkJMS 侦听器和发送器 - Spring 框架
【发布时间】:2013-02-17 00:36:26
【问题描述】:

我想了解一个java程序,需要修改使用jms spring框架开发的。通常它具有 JMS 接收器和发送器,它从请求队列接收消息,并在作业完成后调用作业(另一个 java 程序),发送器将向响应队列发送响应。有几个问题如下,

  1. 在响应成功发布到响应队列之前,不会删除请求消息。它是如何实现的,其背后的逻辑是什么。
  2. 我想在发送方发送消息失败时(通过捕获 JMS 异常)编写将响应写入平面文件的功能。一旦发送者队列启动并运行,我将读取平面文件并发送响应。我需要的原因是因为如果作业失败,它参与作业处理可能需要数小时,然后接收器将再次读取输入消息。我想避免重复处理。请在这里提出你的想法。

【问题讨论】:

  • 为什么发送消息会失败?这不应该是极其罕见的吗?

标签: java spring-jms


【解决方案1】:

如果没有看到配置,很难回答这些问题,但最好的猜测是#1 是因为应用程序正在使用事务会话。这意味着在提交事务之前,该会话上的所有更新都不会完成。

只捕获异常并写入数据;只要事务提交(因为您捕获了异常),输入消息就会被删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-09
    • 1970-01-01
    • 2015-02-03
    • 2015-05-19
    • 1970-01-01
    • 1970-01-01
    • 2015-05-27
    相关资源
    最近更新 更多