我正在尝试此页面中的示例代码来测试将消息发布到 WSO2 消息代理:
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 是相对较重的连接,因此不建议为每条消息建立连接。您只需修改代码即可使用同一 session 发送多条消息。根据所附代码,您可以使用简单的 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);
}
}
关于java - 管理与 WSO2 Message Broker 的连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39855800/