0

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

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

1 回答 1

0

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

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

于 2013-03-02T15:38:47.987 回答