2011-12-05 81 views
1

我們可以暫停MDB消息處理一段時間嗎?例如:用於消息處理的Jboss 1部署的MDB。 Jboss 2: - 用於收集用戶詳細信息的Bean。如果jboss 1的MDB調用jboss 2中的bean來獲取用戶詳細信息。如果是這種情況,當我們重新啓動Jboss 2時,我們需要暫停jboss 1中的MDB,直到jboss 2啓動。是否有任何選項可以暫停MDB,以便我們可以避免信息失敗?暫停MDB消息處理

+0

在JBoss4,5你可以JMX豆之間建立依賴關係 - BarrierController/Barrier並使MDB依賴Barrier,因此可以通過啓動和停止屏障來完成暫停。我一直無法在JBoss 7 AS中直接找到這個功能。我仍在尋找 - 任何幫助將不勝感激! – pjklauser

回答

1

我懷疑你可以在不停止整個應用程序的情況下停止MDB。 Spring JMS是可能的,但不能與常規的消息驅動bean一起使用。

你可以做什麼,顯然是可能的,是pausing a queue。 HornetMQ確實可以讓您將隊列切換爲「僅接收模式」,但我不知道這是否可通過管理控制檯訪問。

+0

是的..你可以暫停隊列。 –

+1

我該怎麼做。 – vairam

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」
+0

你有沒有發現JBoss 7的一些等價物? – pjklauser

+0

@pjklauser JBoss 7在JMX控制檯中沒有這個嗎?我從來沒有用過它。 – GreenGiant

0

您可以停止HornetQ上的隊列。 (我不知道的JBoss Messaging,但我敢肯定,你這樣做)

查找消息暫停和恢復對JMX控制檯