Как исправить javax.jms.JMSException: не удалось создать соединение?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как исправить javax.jms.JMSException: не удалось создать соединение?

Сообщение Anonymous »

Мы (несколько приложений JAVA) подключаемся к IBM MQ с использованием подхода JMS/JNDI в среде WebSphere Application Server.
Каждый запрос соответствует приведенному ниже высокоуровневому потоку:
  • Создайте JNDI InitialContext, используя

    com.ibm.websphere.naming.WsnInitialContextFactory
  • Поиск JMS ConnectionFactory через JNDI

    (например: jms/ABCD)
  • Просмотр очереди запросов и очереди ответов с помощью JNDI
  • Создайте JMS-соединение из ConnectionFactory
  • Создайте сеанс JMS без транзакций с помощью AUTO_ACKNOWLEDGE
  • Запустите соединение
  • Создайте MessageProducer
  • Создайте и отправьте сообщение запроса MQ (формат CIH)
  • Закройте все ресурсы JMS и JNDI в блоке Final
    Аналогично мы создали сеансовое соединение для потребителя.
Логика создания соединения JNDI и JMS следующая:
context = new InitialContext(environment);

ConnectionFactory connectionFactory =
(ConnectionFactory) context.lookup("jms/ABCD");

Destination requestQueue =
(Destination) context.lookup(requestQueueName);

Destination replyQueue =
(Destination) context.lookup(replyToQueueName);

connection = connectionFactory.createConnection();
session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
connection.start();

producer = session.createProducer(requestQueue);
producer.send(message);

Иногда, когда несколько приложений одновременно вызывают эту службу JMS, сервер приложений выдает следующее исключение во время создания соединения:
javax.jms.JMSException: Failed to create connection
at com.ibm.ejs.jms.JMSCMUtils.mapToJMSException(JMSCMUtils.java:140)
at com.ibm.ejs.jms.JMSConnectionFactoryHandle.createConnection(JMSConnectionFactoryHandle.java:277)
at com.hdb.jms.JMSServiceSender.doCicsRequestReplySend(JMSServiceSender.java:84)
at com.hdb.jms.JMSService.CicsRequestReply(JMSService.java:30)

Когда возникает эта проблема:
  • Сбой происходит в ConnectionFactory.createConnection()
  • Мы не можем определить, какое вызывающее приложение вызывает проблему
  • Проблема периодическая и возникает одновременно load
Все ресурсы JMS и JNDI явно закрываются в блоке Final, чтобы избежать утечек ресурсов:
finally {
if (producer != null) {
producer.close();
}
if (session != null) {
session.close();
}
if (context != null) {
context.close();
}
if (connection != null) {
connection.close();
}
}


Подробнее здесь: https://stackoverflow.com/questions/798 ... connection
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»