Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.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
Spring集成-消息存储恢复/重新发送_Spring_Jms_Integration_Activemq_Spring Jdbc - Fatal编程技术网

Spring集成-消息存储恢复/重新发送

Spring集成-消息存储恢复/重新发送,spring,jms,integration,activemq,spring-jdbc,Spring,Jms,Integration,Activemq,Spring Jdbc,我有一个关于jdbc消息存储行为的问题。我注意到,如果发生故障,例如,如果遵循以下顺序: 1) 入站通道适配器-创建消息负载并将其发送到通道 2) jms:outbound通道适配器为有效负载轮询通道,该适配器在jms队列中添加一个条目。我正在使用ActiveMQ 当我测试关闭MOM之类的情况时,我希望将消息持久保存在消息存储中,但这不是默认行为。看起来SI处理通道中的有效负载,然后将其推出(从存储中删除)。我可以看到消息被插入到数据库中的消息存储中 我对消息存储功能的理解有误吗?我认为这个消息

我有一个关于jdbc消息存储行为的问题。我注意到,如果发生故障,例如,如果遵循以下顺序: 1) 入站通道适配器-创建消息负载并将其发送到通道 2) jms:outbound通道适配器为有效负载轮询通道,该适配器在jms队列中添加一个条目。我正在使用ActiveMQ

当我测试关闭MOM之类的情况时,我希望将消息持久保存在消息存储中,但这不是默认行为。看起来SI处理通道中的有效负载,然后将其推出(从存储中删除)。我可以看到消息被插入到数据库中的消息存储中


我对消息存储功能的理解有误吗?我认为这个消息会一直持续到成功运行为止。谢谢你的反馈

您需要为此设置持久订阅。我认为大多数SI JMS组件都支持这一点。

谢谢。如果代理关闭,则无论主题或队列如何,它都将失败。无论如何,如果activemq或任何其他mom关闭,那么重新发送消息的最佳做法是什么?我认为messagestore将为通道提供支持。使用纯JMS,持久订阅正是您所需要的。如果消息已发送,但使用持久订阅订阅的消费者处于脱机状态,则代理将保留消息,并在消费者再次可用时立即交付消息。我不知道如何用SI存档,因为如果没有可用的使用者,某些组件会抛出异常。我经常让一些简单的事情变得困难。。。如果您不需要SI,我将使用纯JMS(没有spring的JMS模板!直接使用JMS-API非常简单。)