ActiveMQ createSession timeout - PullRequest
       11

ActiveMQ createSession timeout

4 голосов
/ 27 июля 2011

Есть ли способ установить время ожидания при создании объекта сеанса из соединения ActiveMQ?

Код, который я использую, выглядит следующим образом:

ConnectionFactory factory = Settings.getJmsConnectionFactory(ip);
connection = factory.createConnection();
// insert timeout here
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
Topic topic = session.createTopic(Settings.Topic);
MessageConsumer consumer = session.createConsumer(topic);
consumer.setMessageListener(this);
connection.start();

Это прекрасно работаетПока сервер сообщений уже запущен.В противном случае вызов createSession будет заблокирован.Я мог бы выполнить его в другом потоке, чтобы избежать блокировки приложения, но я подумал, что попрошу выяснить, есть ли «более чистый» способ сделать это.

Cheers, Max

1 Ответ

2 голосов
/ 27 июля 2011

Вы уверены, что это вызов createSession ()?Если сервер недоступен, он должен завершиться с ошибкой createConnection ().Если у вас нет запущенного сервера и вы используете отказоустойчивый транспорт , он всегда будет пытаться восстановить соединение, используя настройки по умолчанию.Посмотрите варианты транспорта для аварийного транспорта и узнайте, как его можно исправить.

...