Spring集成 - 消息存储可以持久化到队列吗?

时间:2015-10-22 16:15:50

标签: spring-integration

问题:如果发生系统故障,如何将消息存储库中的消息回滚到队列?

之情况: IBM MQ队列 - > JMS消息驱动器通道适配器 - >聚合。

在系统故障期间导致JVM关闭。我可以指定MQ队列作为持久性消息存储,而不是使用默认的易失性消息存储吗?这样,如果发生系统故障,消息存储中的消息可以回滚MQ持久队列以进行故障转移处理。

编辑:最后一句澄清。

1 个答案:

答案 0 :(得分:0)

目前还不清楚你的意思......

  

可以回滚到原始队列

...如果你的意思是自动,那么,没有。

有一个JDBC消息存储库实现(但您需要XA事务)。

您可能可以创建一个由JMS支持的自定义消息存储库,但这是一个不寻常的队列使用 - 我想您必须使用基于groupId的消息选择器,但您可能需要在内存中保留一个镜像(并在系统初始化期间初始化它,同时将消息留在队列中)。