我正在尝试此页面上的示例代码来测试将消息发布到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已关闭
每次发布消息时都需要重新连接吗?
最佳答案
样本仅用于演示目的。由于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);
}
}