想要关闭ActiveMq连接

时间:2012-03-22 19:43:56

标签: activemq

我需要有关嵌入式ActiveMq和Spring Framework的帮助。

问题是: - 我正在使用嵌入式ActiveMQ和Spring框架JMS支持。

作为开发的一部分,我有一个将消息发布到Virtual Topic的组件。我有另一个组件订阅该主题的消息。

现在问题是订阅消息的应用程序正在集群环境中运行,即一个主实例和一个从实例。我发布的事件将转到主实例或从实例。但我希望只有主实例才能订阅消息。有什么方法可以阻止slave实例不订阅事件吗?

我们设置了一个系统属性来区分主实例和从实例。我尝试通过覆盖createConnection类的ActiveMqConnectionFactory方法来添加条件。

if(master) {
ActiveMqConnectionFactory.createConnection} 
else 
return null.

在这种情况下,我们配置为监听事件的DefaultMessageListener {{1}}总是试图刷新连接,因为我为slave返回null,它无法创建连接。线程将以5000MS间隔进行无限循环。

有什么方法可以说MessageListener停止刷新连接..

请帮助我解决这个问题..

1 个答案:

答案 0 :(得分:0)

如果群集是主/从...那么在给定时间只有一个应该是活动的...听起来你从AMQ客户端的角度来看有双主...

无论如何,您始终可以使用ActiveMQ安全性来控制对基于连接凭据的给定主题/队列的访问(请参阅http://activemq.apache.org/security.html