1

我正在编写一个负责集群节点之间通信的 Java JMS 应用程序。消息传递是通过发布\订阅使用主题完成的。TopicSubscriber 是通过调用 TopicSession.createSubscriber(topic, null, true) 创建的,这意味着它不是持久订阅者。现在我正在实现一个“释放”方法,该方法应该取消订阅订阅者(然后关闭连接等)。我看到 TopicSession.unsubscribe(String name) 仅与持久订阅者相关,那么如何取消订阅非持久订阅者?有必要吗?

4

1 回答 1

2

不,您不需要TopicSession.unsubscribe()为非持久订阅签发。关闭消费者将从 JMS 提供者中删除订阅。您还可以从 JMS 提供程序执行Session.Close()Connection.Close()删除订阅。

在您的Release方法中,只需关闭订阅者或会话或连接。

只有持久订阅才需要取消订阅。

于 2012-05-24T04:04:51.493 回答