我们可以暂停MDB消息处理一段时间吗?例如:Jboss 1为消息处理部署了MDB。Jboss 2:-收集用户详细信息的bean。如果jboss 1中的MDB调用jboss 2中的bean来获取用户详细信息。如果是这种情况,当我们重新启动Jboss 2时,我们需要暂停Jboss 1中的MDB,直到Jboss 2 UP。是否有暂停MDB的选项,以便我们可以避免消息失败?
我怀疑您可以在不停止整个应用程序的情况下停止MDB。这对于Spring JMS是可能的,但对于常规的消息驱动bean则不行。
你能做的,显然是可能的,是暂停队列。HornetMQ确实提供了将队列切换到"仅接收模式"的可能性,尽管我不知道这是否可以通过管理控制台使用。
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
- 要暂停,请点击"停止交付"旁边的"调用"按钮
- 点击"startDelivery"旁边的"Invoke"按钮继续
您可以在HornetQ上停止队列。(我不确定JBoss消息,但我很确定你做)
在JMX控制台