【发布时间】:2021-04-01 16:11:06
【问题描述】:
我的应用程序中总共定义了 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 连接限制。
【问题讨论】:
标签: java spring-jms