繁体   English   中英

限制由 Spring JmsListener 创建的 JMS 连接

[英]Limit JMS connections created by Spring JmsListener

我的应用程序中总共定义了 4 个JmsListener 我正在使用DefaultMessageListenerContainerFactory并将并发设置为25-75 我看到我的应用程序正在创建大量 JMS 连接并耗尽限制。 有没有办法可以限制这种连接?

JmsListenerContainerFactory<DefaultMessageListenerContainer> createJmsListenerContainerFactory(
        ConnectionFactory cf,DefaultJmsListenerContainerFactoryConfigurer configurer) {
    DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
    configurer.configure(factory, cf);
    factory.setSessionTransacted(true);
    factory.setSessionAcknowledgeMode(2);
    factory.setBackOff(new FixedBackOff());
    return factory; 
} 

这是我在侦听器中使用它的方式。

@Bean(name = "containerFactory")
public MQConnectionFactory mqConnectionFactory(DefaultJmsListenerContainerFactoryConfigurer configurer) throws NamingException {
    //call to createJmsListenerContainerFactory()
}
   
@JmsListener(destination = "queue1", containerFactory = "containerFactory", concurrency = "25-75")

我有我的应用程序的 6 个实例正在运行。 我需要限制每个实例的 JMS 连接限制。

将您的连接工厂包装在SingleConnectionFactory中,它们将共享相同的连接。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM