我们可以暂停MDB消息处理一段时间吗?例如:Jboss 1部署的MDB用于消息处理。 Jboss 2:-Bean用于收集用户详细信息。如果来自jboss 1的MDB在jboss 2中调用bean来获取用户详细信息。如果是这种情况,当我们重新启动Jboss 2时,我们需要在jboss 1中暂停MDB,直到jboss 2为UP。有没有选择暂停MDB,以便我们可以避免消息失败?
答案 0 :(得分:2)
我怀疑你可以在不停止整个应用程序的情况下停止MDB。可以使用Spring JMS,但不能使用常规的消息驱动bean。
你可以做的,显然是可能的,pausing a queue。 HornetMQ确实让你可以将队列切换到“仅接收模式”,但我不知道这是否可以通过管理控制台获得。
答案 1 :(得分:2)
在JBoss(4.x和5.x)中,您可以通过JMX控制台查找MDB并暂停传递消息。
http://yourserver:8080/jmx-console/
,其中8080是HTTP端口)jboss.j2ee
在右侧窗格中,找到并单击您的MDB。通常,它看起来像
jar=file-containing-your-MDB.jar,name=NameOfYourMDB,service=EJB3
答案 2 :(得分:0)
你可以在HornetQ上停止队列。 (我不确定JBoss Messaging,但我很确定你这样做)
在JMX控制台上查找消息暂停和恢复