暂停MDB消息处理

时间:2011-12-05 12:23:27

标签: jboss queue jms message-driven-bean hornetq

我们可以暂停MDB消息处理一段时间吗?例如:Jboss 1部署的MDB用于消息处理。 Jboss 2:-Bean用于收集用户详细信息。如果来自jboss 1的MDB在jboss 2中调用bean来获取用户详细信息。如果是这种情况,当我们重新启动Jboss 2时,我们需要在jboss 1中暂停MDB,直到jboss 2为UP。有没有选择暂停MDB,以便我们可以避免消息失败?

3 个答案:

答案 0 :(得分:2)

我怀疑你可以在不停止整个应用程序的情况下停止MDB。可以使用Spring JMS,但不能使用常规的消息驱动bean。

你可以做的,显然是可能的,pausing a queue。 HornetMQ确实让你可以将队列切换到“仅接收模式”,但我不知道这是否可以通过管理控制台获得。

答案 1 :(得分:2)

在JBoss(4.x和5.x)中,您可以通过JMX控制台查找MDB并暂停传递消息。

  1. 转到jmx控制台(http://yourserver:8080/jmx-console/,其中8080​​是HTTP端口)
  2. 点击左侧窗格中的jboss.j2ee
  3. 在右侧窗格中,找到并单击您的MDB。通常,它看起来像

    jar=file-containing-your-MDB.jar,name=NameOfYourMDB,service=EJB3

  4. 要暂停,请点击“stopDelivery”旁边的“调用”按钮
  5. 要继续,请点击“startDelivery”
  6. 旁边的“调用”按钮

答案 2 :(得分:0)

你可以在HornetQ上停止队列。 (我不确定JBoss Messaging,但我很确定你这样做)

在JMX控制台上查找消息暂停和恢复

相关问题