#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. Спасибо — я делал это в своем коде, должно быть, я делаю что-то не так, поскольку у меня, похоже, проблемы с подключением. Я перечитаю и попробую еще раз.