0

我在 GlassFish 3.1.2.2 中配置 JMS 主题时遇到问题。

我有一个集群,该集群中有一个节点和 4 个本地实例。我想要一个 JMS 主题,我在该主题上发送消息并且所有实例都接收消息。

我阅读了有关 useSharedSubscriptionInClusteredContainer 的信息,并将其设置为 false ,这应该可以做我想做但没有做的事情。在我的测试中,当我在 Topic 上发送消息时,四个实例中只有一个接收到消息。

我知道这是集群上 JMS 主题的默认行为,但这不是我想要的。谁能告诉我我做错了什么?感谢您的回答。

4

1 回答 1

0

假设您正在使用消息驱动 Bean 侦听该主题,那么默认情况下它们都使用相同的客户端 ID 进行侦听。

通过设置以下注释,我设法为每个实例指定了不同的客户端 ID:

@MessageDriven(mappedName="jms/YourTopic", 
activationConfig =  {
  @ActivationConfigProperty(propertyName = "clientID", propertyValue="${com.sun.aas.instanceName}")
})
于 2013-03-07T22:56:16.747 回答