Повторное использование JMSContext в IBM MQ

Я пытаюсь повторно использовать JMSContext отправлять несколько сообщений, используя один и тот же контекст, как показано в этом руководстве по IBM MQ.

context = cf.createContext();
destination = context.createQueue(QUEUE_NAME);
producer = context.createProducer();

for (int i = 1; i <= 5000; i++) {
  try {
     TextMessage message = context.createTextMessage("Message " + i + ".\n");
     producer.send(destination, message);
  } catch (Exception ignore) {}
}
context.close();

Скажем, в какой-то момент соединение обрывается. Будет ли контекст автоматически восстанавливаться, или мне нужно будет восстановить контекст снова?


ОБНОВИТЬ --

Вот как строится текущая фабрика соединений:

JmsFactoryFactory ff = JmsFactoryFactory.getInstance(JmsConstants.WMQ_PROVIDER);
JmsConnectionFactory cf = ff.createConnectionFactory();

cf.setStringProperty    (CommonConstants.WMQ_HOST_NAME, config.getHost());
cf.setIntProperty       (CommonConstants.WMQ_PORT, config.getPort());
cf.setStringProperty    (CommonConstants.WMQ_CHANNEL, config.getChannel());
cf.setIntProperty       (CommonConstants.WMQ_CONNECTION_MODE, CommonConstants.WMQ_CM_CLIENT);
cf.setStringProperty    (CommonConstants.WMQ_QUEUE_MANAGER, config.getQueueManager());
cf.setBooleanProperty   (JmsConstants.USER_AUTHENTICATION_MQCSP, false);
cf.setIntProperty       (JmsConstants.PRIORITY, 0);

return cf.createContext();

2 ответа

Переподключение работает следующим образом (см. Также комментарий @JoshMc):

  1. На клиенте установите параметр переподключения следующим образом:

    cf.setIntProperty(CommonConstants.WMQ_CLIENT_RECONNECT_OPTIONS, CommonConstants.WMQConstants.WMQ_CLIENT_RECONNECT);
    
  2. На сервере остановите администратор очередей следующим образом:

    endmqm -r 
    

Вы пробовали с созданием JMSContext от существующего?

JMSContext#createContext(int sessionMode)

Это создаст новый JMSContext но повторно используйте то же соединение.

Ссылка:

https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.1.0/com.ibm.mq.pro.doc/intro_jms_model.htm https://docs.oracle.com/javaee/7/api/javax/jms/JMSContext.html

Другие вопросы по тегам