Приостановить обработку сообщения MDB - PullRequest
1 голос
/ 05 декабря 2011

Можем ли мы приостановить обработку сообщений MDB на некоторое время? Например: JBSS 1-развернутый MDB для обработки сообщений. Jboss 2: -Боб для сбора пользовательских данных. Если MDB из jboss 1 вызывает bean-компонент в jboss 2 для получения сведений о пользователях. Если это так, когда мы перезапускаем Jboss 2, нам нужно приостановить MDB в jboss 1 до тех пор, пока jboss 2 не станет UP. Есть ли возможность приостановить MDB, чтобы мы могли избежать сбоя сообщения?

Ответы [ 3 ]

2 голосов
/ 28 февраля 2012

В JBoss (4.x и 5.x) вы можете искать MDB через консоль JMX и приостанавливать доставку сообщений.

  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. Чтобы сделать паузу, нажмите кнопку «Invoke» рядом с «stopDelivery»
  5. Для возобновления нажмитеКнопка «Вызвать» рядом с «StartDelivery»
2 голосов
/ 08 декабря 2011

Я сомневаюсь, что вы можете остановить MDB, не останавливая все приложение.Это возможно с Spring JMS, но не с обычными компонентами, управляемыми сообщениями.

То, что вы могли бы сделать, и, по-видимому, возможно, это приостановка очереди .HornetMQ дает вам возможность переключить очередь в «режим только получения», хотя я не знаю, доступно ли это через консоль администратора.

0 голосов
/ 29 февраля 2012

Вы можете остановить очередь на HornetQ.(Я не уверен насчет JBoss Messaging, но я уверен, что вы это делаете)

Найдите паузу сообщения и возобновите его на консоли JMX

...