Управление подключением к WSO2 Message Broker

#java #wso2 #messagebroker #wso2mb

#java #wso2 #messagebroker #wso2-message-broker

Вопрос:

Я пробую пример кода с этой страницы, чтобы протестировать публикацию сообщений в WSO2 Message Broker:

https://docs.wso2.com/display/MB310/Sending and Receiving Messages Using Queues

Пример кода отображается для подключения -> публикации -> отключения.

Я предполагаю, что это не типичный дизайн для производственного кода. Я попытался сократить код, который вызывается каждый раз, когда я публикую сообщение (несколько раз в секунду), но, похоже, соединение разорвано и никогда не восстанавливается:

 public void publishMessage(String msg) throws NamingException, JMSException {
    TextMessage textMessage = topicSession.createTextMessage(msg);
    topicPublisher.publish(textMessage);
}
  

javax.jms.IllegalStateException: объект org.wso2.andes.client.AMQSession_0_8@79aa1855 закрыт

Нужно ли мне повторно подключаться каждый раз, когда я публикую сообщение?

Ответ №1:

Примеры приведены только для демонстрации. Поскольку JMS является относительно тяжелым соединением, не рекомендуется устанавливать соединения для каждого сообщения. вы можете просто изменить код, чтобы отправлять несколько сообщений с одним сеансом. На основе прикрепленного кода вы можете использовать простой цикл for для отправки 5 сообщений.

 public void publishMessage(String msg) throws NamingException, JMSException {
   TextMessage textMessage = topicSession.createTextMessage(msg);
   for(int i=0; i<5; i  ){
        topicPublisher.publish(textMessage);
   }
}
  

Комментарии:

1. Спасибо — я делал это в своем коде, должно быть, я делаю что-то не так, поскольку у меня, похоже, проблемы с подключением. Я перечитаю и попробую еще раз.