问题:如果发生系统故障,如何将消息存储库中的消息回滚到队列?
之情况: IBM MQ队列 - > JMS消息驱动器通道适配器 - >聚合。
在系统故障期间导致JVM关闭。我可以指定MQ队列作为持久性消息存储,而不是使用默认的易失性消息存储吗?这样,如果发生系统故障,消息存储中的消息可以回滚MQ持久队列以进行故障转移处理。
编辑:最后一句澄清。
答案 0 :(得分:0)
目前还不清楚你的意思......
可以回滚到原始队列
...如果你的意思是自动,那么,没有。
有一个JDBC消息存储库实现(但您需要XA事务)。
您可能可以创建一个由JMS支持的自定义消息存储库,但这是一个不寻常的队列使用 - 我想您必须使用基于groupId
的消息选择器,但您可能需要在内存中保留一个镜像(并在系统初始化期间初始化它,同时将消息留在队列中)。