Каждый запрос соответствует приведенному ниже высокоуровневому потоку:
- Создайте JNDI InitialContext, используя
com.ibm.websphere.naming.WsnInitialContextFactory - Поиск JMS ConnectionFactory через JNDI
(например: jms/ABCD) - Просмотр очереди запросов и очереди ответов с помощью JNDI
- Создайте JMS-соединение из ConnectionFactory
- Создайте сеанс JMS без транзакций с помощью AUTO_ACKNOWLEDGE
- Запустите соединение
- Создайте MessageProducer
- Создайте и отправьте сообщение запроса MQ (формат CIH)
- Закройте все ресурсы JMS и JNDI в блоке Final
Аналогично мы создали сеансовое соединение для потребителя.
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
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
Мобильная версия