Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java JMS侦听器&;发送器-Spring框架_Java_Spring Jms - Fatal编程技术网

Java JMS侦听器&;发送器-Spring框架

Java JMS侦听器&;发送器-Spring框架,java,spring-jms,Java,Spring Jms,我想了解一个java程序,需要修改使用jms spring框架开发的程序。通常它有JMS接收方和发送方,它从请求队列接收消息,并将调用作业(另一个java程序),一旦作业完成,发送方将向响应队列发送响应。下面有几个问题 在响应成功发布到响应队列之前,不会删除请求消息。它是如何实现的?背后的逻辑是什么 我想写一个在发送方无法发送消息时将响应写入平面文件的功能(通过捕获JMS异常)。一旦发送方队列启动并运行,我将读取平面文件并发送响应。我之所以需要它,是因为它涉及到的作业处理可能在几个小时内,如果作

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

  • 在响应成功发布到响应队列之前,不会删除请求消息。它是如何实现的?背后的逻辑是什么
  • 我想写一个在发送方无法发送消息时将响应写入平面文件的功能(通过捕获JMS异常)。一旦发送方队列启动并运行,我将读取平面文件并发送响应。我之所以需要它,是因为它涉及到的作业处理可能在几个小时内,如果作业失败,那么输入消息将被接收器再次读取。我想避免重复处理。请在这里提出你的想法
    如果没有看到配置,很难回答这些问题,但最好的猜测是#1是因为应用程序正在使用事务会话。这意味着在提交事务之前,该会话上的所有更新都不会完成


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

    为什么发送消息会失败?这不是非常罕见吗?