1

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

4

3 回答 3

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”旁边的“Invoke”按钮
  5. 要恢复,请单击“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 回答