2016-10-04 8 views
0

Я пробуя пример кода с этой страницы, чтобы проверить публикацию сообщений в 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: Object орг .wso2.andes.client.AMQSession_0_8 @ 79aa1855 был закрыт

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

ответ

1

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

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

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