Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ActiveMQ:使用连接池时暂停/恢复使用者_Java_Activemq - Fatal编程技术网

Java ActiveMQ:使用连接池时暂停/恢复使用者

Java ActiveMQ:使用连接池时暂停/恢复使用者,java,activemq,Java,Activemq,我试图弄清楚,当我的应用程序处于受控维护模式时,如何方便地暂停所有消费者/消息侦听器。应用程序正在使用ActiveMQ 5.13.3客户端库 不久前,我已从单个ActiveMQConnectionFactory切换到PooledConnectionFactory。它是这样设置的: ActiveMQConnectionFactory amcf = new ActiveMQConnectionFactory(config.getMessageBrokerUrl()); amcf.setTrusted

我试图弄清楚,当我的应用程序处于受控维护模式时,如何方便地暂停所有消费者/消息侦听器。应用程序正在使用ActiveMQ 5.13.3客户端库

不久前,我已从单个
ActiveMQConnectionFactory
切换到
PooledConnectionFactory
。它是这样设置的:

ActiveMQConnectionFactory amcf = new ActiveMQConnectionFactory(config.getMessageBrokerUrl());
amcf.setTrustedPackages(Arrays.asList(new String[] {
    "some.package.or.other",
    "java.lang",
    "java.util"
}));

connectionFactory = new PooledConnectionFactory(amcf);
connectionFactory.setCreateConnectionOnStartup(true);
使用者和生产者从连接池“创建”(=获取)连接,并在完成后“关闭”连接,将其返回到连接池。显然,对于MessageListeners,它在启动时获取一次,在应用程序关闭时返回

表示它暂时停止连接传入消息的传递。非常适合我想要的,只有池显然包含许多连接,而不仅仅是一个


如何暂停ActiveMQ连接池的所有连接?

我想您必须求助于使用池连接池暂停消息传递的其他方法。例如,在使用spring DMLC时,请参见此问题(您可能不是这样):

您还可以从代理端暂停该队列。队列的JMX MBean上有一个暂停/恢复操作。见附件截图

它不会回答有关暂停客户端的问题,但可能会解决您的问题


我想您必须求助于其他方法,使用池连接池暂停消息传递。例如,在使用spring DMLC时,请参见此问题(您可能不是这样):

您还可以从代理端暂停该队列。队列的JMX MBean上有一个暂停/恢复操作。见附件截图

它不会回答有关暂停客户端的问题,但可能会解决您的问题


谢谢。暂停队列对我来说不是解决方案,其他客户端仍应通过它进行通信。用例是集群中单个节点的受控关闭。我将研究停止messageListeners而不是连接。谢谢。暂停队列对我来说不是解决方案,其他客户端仍应通过它进行通信。用例是集群中单个节点的受控关闭。我将研究停止messageListeners而不是连接。