问题描述
我需要一些有关以下代码的帮助。如下所述,在使用 SingleConnectionFactory
时可以使用 DefaultMessageListenerContainer
吗?由于达到每个客户端的最大连接数,我遇到了 QM 通道断开连接的问题。
JmsListenerContainerFactory<DefaultMessageListenerContainer> createJmsListenerContainerFactory(
ConnectionFactory cf,DefaultJmsListenerContainerFactoryConfigurer configurer) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
configurer.configure(factory,new SingleConnectionFactory(cf));
factory.setSessionTransacted(true);
factory.setConcurrency("15-50");
factory.setSessionAckNowledgeMode(2);
factory.setBackOff(new FixedBackOff());
return factory;
}
这是我的 JmsListener
如何使用它:
@Bean(name = "containerFactory")
public MQConnectionFactory mqConnectionFactory(DefaultJmsListenerContainerFactoryConfigurer configurer) throws NamingException {
//call to createJmsListenerContainerFactory()
}
@JmsListener(destination = "queue1",containerFactory = "containerFactory",concurrency = "16-32")
解决方法
是的;但 SCF 应配置为 function destroyer(arr,...valsToRemove) {
(而不是 @Bean
),以便 Spring 可以管理其生命周期。