Я использую javax.jms.Connection для отправки & получать сообщения jms в/из JBoss501. Я также использую Connection.setExceptionListener(). Я хотел бы знать, нужно ли установить прослушиватель исключений до начала соединения (Conneciton.start())? Любые идеи воспроизвести исключение соединения JBoss по желанию, чтобы подтвердить, вызван ли прослушиватель исключений.JMS ExceptionListener
ответ
Из спецификации:
Если провайдер JMS обнаруживает серьезные проблемы с объектом Connection, информирует ExceptionListener объекта Connection, в случае один был зарегистрирован. Он делает это, вызывая метод onException слушателя, передавая ему аргумент JMSException, описывающий проблему.
Слушатель исключений позволяет асинхронно уведомлять клиента о проблеме. Некоторые соединения только потребляют сообщения, поэтому у них не будет другого способа узнать, что их соединение не удалось.
Помните, что здесь есть место для реализации конкретного поставщика, о том, как обрабатываются исключения. Некоторые поставщики пытаются «исправить» ситуацию, если это возможно.
Теперь о запуске соединения до или после установки листинга исключений ... Всегда устанавливайте прослушиватель исключений ПЕРЕД началом подключения.
И О воспроизводя я думаю, вы могли бы
- Start потребитель, connection.start должен быть запущен. И ждет сообщение.
- Закрытие jboss немедленно.
- Перезапустить jboss.
Кроме того, я знаю, что с помощью Eclipse, или другие инструменты Dev поможет вам начать работу в режиме отладки, и вы можете в любой момент времени, как отладчик показывает вам статус просто прервать сервер JBoss и перезапустить его снова.
С Jboss 5.0.1 настройка прослушивателя исключений срабатывала даже после запуска соединения. Как уже упоминалось в «MrSimpleMind» , прослушиватель исключений лучше работает, прежде чем начать соединение - на самом деле - лучше, как только соединение будет создано из ConnectionFactory.
Слушатель исключение вступает в силу, даже если соединение не началось - в случае Jboss 501.
//Main
try {
connection = getConnection();
connection.setExceptionListener(new MyExceptionListener());
//Exception listener is effective even before connection is started.
//connection.start();
while(true){
try {
Thread.sleep(1000 * 5);
Log.l("Kill the JMS provider any time now. !! Observe if the JMS listener works.");
} catch (InterruptedException e) {
//do nothing.
}
}
} catch (NamingException e) {
e.printStackTrace();
} catch (JMSException e) {
e.printStackTrace();
}
//Exception Listener
public class MyExceptionListener implements ExceptionListener {
@Override
public void onException(JMSException e) {
Log.l("Exception listener invoked");
}
}
Чтобы воспроизвести ситуацию, в которой ExceptionListener сработал/вызывается, я использовал управление JBoss консоли и остановил ConnectionFactory, используя компонент mx, выставленный консолью Jboss mgmt.
- 1. Worklight Сервер 6.2 JMS адаптер javax/JMS/ExceptionListener
- 2. Как создать Active-mq ExceptionListener?
- 3. Реализация ExceptionListener на MessageListener
- 4. Получение параметров маршрута внутри ExceptionListener
- 5. Пользовательский ExceptionListener не улавливает ConnectionException
- 6. Symfony ExceptionListener: как обрабатывать зависимости?
- 7. MQ JMS переподключение - исключение слушателем
- 8. Конфигурация TIBCO JMS с Спрингом
- 9. Как вы публикуете тему JMS с помощью Spring JMS?
- 10. Соединение IBM JMS
- 11. JMS Queue and JMS Тема
- 12. JMS Queue with 2 Listeners
- 13. Работа с JMS MessageConsumer.receive (длинный), не возвращающийся в течение таймаута
- 14. Использование WebSphere AS JMS ресурсы встроенного Mule
- 15. Как работает JMS в Java?
- 16. Создание временной темы JMS jms весной
- 17. Графический модуль JMS для сервера WebLogic JMS
- 18. Что такое JMS? XML в JMS
- 19. Как очистить очередь jms от весенних jms?
- 20. Сообщения JMS и балансировка нагрузки JMS-сообщений
- 21. JMS ловли, когда сервер JMS уходит
- 22. jms адаптер запускать два jms-пользователя
- 23. JMS Alternative
- 24. javax.naming.NameNotFoundException: Jms
- 25. JMS setTimeToLive
- 26. JMS rollback
- 27. weblogic Сообщение очереди JMS не откатывается на исключение
- 28. Длинные сессии JMS. Удерживает ли JMS-подключения/JMS-сессии всегда открытую плохую практику?
- 29. Определить ListenerContainer без пространства имен jms весной jms
- 30. Spring JMS начинает прослушивать очереди jms по запросу
Ницца с обратной связью и вашим обменом с сообществом SO. +1 – MrSimpleMind