我们可以暂停 MDB 消息处理一段时间吗?例如:Jboss 1 部署的 MDB 用于消息处理。Jboss 2:-Bean 用于收集用户详细信息。如果 jboss 1 中的 MDB 调用 jboss 2 中的 bean 来获取用户详细信息。如果是这种情况,当我们重新启动 Jboss 2 时,我们需要暂停 jboss 1 中的 MDB,直到 jboss 2 UP。是否有任何选项可以暂停 MDB,以避免消息失败?
问问题
2777 次
3 回答
2
在 JBoss(4.x 和 5.x)中,您可以通过 JMX 控制台查找 MDB 并暂停消息传递。
- 转到 jmx 控制台(
http://yourserver:8080/jmx-console/
其中 8080 是 HTTP 端口) jboss.j2ee
在左侧窗格中单击在右侧窗格中,找到并单击您的 MDB。通常,它看起来像
jar=file-containing-your-MDB.jar,name=NameOfYourMDB,service=EJB3
- 要暂停,请单击“stopDelivery”旁边的“Invoke”按钮
- 要恢复,请单击“startDelivery”旁边的“调用”按钮
于 2012-02-28T17:36:41.623 回答
2
我怀疑您可以在不停止整个应用程序的情况下停止 MDB。可以使用 Spring JMS,但不能使用常规的消息驱动 bean。
你可以做的,显然是可能的,是暂停一个队列。HornetMQ 确实让您可以将队列切换到“仅接收模式”,但我不知道这是否可以通过管理控制台使用。
于 2011-12-08T11:29:00.917 回答
0
您可以停止 HornetQ 上的队列。(我不确定 JBoss Messaging,但我很确定你知道)
在 JMX 控制台上查找消息暂停和恢复
于 2012-02-29T02:13:18.083 回答