使用JMS 1.x,在创建持久订阅时,clientId用于唯一标识客户端。此answer说明了JMS 1.x中clientclient的用法。
使用JMS 2.x,clientId被设置为可选。我想了解在JMS 2.x中提供clientId的利弊。
来自Oracle article on JMS 2.x features:
共享的长期订阅
。这些仅在JMS 2.0中可用,并且使用createSharedDurableConsumer
创建。他们可以有任何数量的消费者。 设置客户端标识符是可选的。如果已设置,则订阅将通过订阅名称和客户端标识符的组合来标识。听起来订阅名称现在是唯一标识符,但是为什么要有clientID?这些是会话类的新方法,因此不能向后兼容。使用JMS 2.x设置clientId的好处或缺点?
MessageConsumer messageConsumer = session.createSharedDurableConsumer(topic, "myDurableSub");
使用JMS 1.x,在创建持久订阅时,clientId用于唯一标识客户端。此答案解释了JMS 1.x中clientId的用法通过JMS 2.x,clientId被设置为可选。我想...
JMS 2规范指出了为什么在6.1.3节中存在客户端ID: