使用暂停队列启动 JBoss EAP 服务器

Start JBoss EAP server with paused queue

我已经实现了一个依赖于 JBoss EAP 6.3 HornetQ 的基于 JMS 的应用程序。我有几个队列,但我需要其中之一默认为 "paused"(在服务器启动时),除非我明确恢复它。

如果您想知道为什么我需要暂停队列,那是因为它是一个 "resubmission" 死信队列:

  1. 当我无法传递消息时,我会在 DLQ 中排队等待将来重新提交。
  2. 监控该队列,我注意到重新提交队列正在填满,因此我检查并修复了原因。
  3. 修复后,我恢复重新提交队列:MDB 正确地(使用一些逻辑)将每条消息重新提交到它来自的队列。

我认为 HornetQ 不具备您正在寻找的能力。但是,此功能已通过 ARTEMIS-753 在 1.5 版中添加到 ActiveMQ Artemis(HornetQ 捐赠的项目)中。您需要迁移到更高版本的 JBoss EAP,它使用 Artemis 1.5(或更高版本)作为 JMS 实现。