2013-03-02 50 views
0

我想了解一个java程序,并且需要修改哪些是使用jms spring框架开发的。通常情况下,它具有JMS接收器,它会从请求队列接收消息,并在作业完成后调用作业(另一个Java程序),发送者将向响应队列发送响应。有几个问题在下面,JMS Listener&Sender - Spring Framework

  1. 直到响应成功发布到响应队列中,才会删除请求消息。它如何实现它的逻辑是什么。
  2. 我想编写一个功能,当发件人无法发送消息(通过捕获JMS异常)将响应写入平面文件。一旦发件人队列启动并运行,我将读取平面文件并发送响应。我需要的原因是因为如果作业失败,那么涉及作业处理的工作可能会在几个小时内完成,然后接收器会再次读取输入消息。我想避免重复处理。请在这里建议你的想法。
+0

为什么发送信息失败?这不应该是非常罕见的吗? – flup 2013-03-09 23:17:21

回答

0

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

只要发现异常并写入数据;只要事务提交(因为您发现异常),输入消息将被删除。