问题描述
我有一个 springboot 应用程序,它有 7 个 JMS 侦听器。很少有 Listeners 会突然停止处理消息,队列开始堆积。与此同时,很少有其他听众在同一个应用程序中工作。但是如果我重新启动应用程序,所有消息都会得到处理。这种行为现在是间歇性的,也找不到任何错误日志。
有人遇到过类似的问题吗?这是我的 JMS Config 类的一个片段:
@Bean(initMethod = "init",destroyMethod = "close",name = "connectionFactory")
public ConnectionFactory connectionFactory() throws JMSException,MalformedURLException {
MQxaConnFactory ibmMQXAConnFactory = new MQxaConnFactory();
AtomikosConnectionfactorybean xaConnFactory = new AtomikosConnectionfactorybean();
try {
URL chanTab1 = new URL(ccdtConnUrl);
ibmMQXAConnFactory.setCCDTURL(chanTab1);
ibmMQXAConnFactory.createXAConnection("mqm","");
ibmMQXAConnFactory.setClientReconnectOptions(WMQConstants.WMQ_CLIENT_RECONNECT);
ibmMQXAConnFactory.setClientReconnectTimeout(1800);
xaConnFactory.setxaConnFactory(ibmMQXAConnFactory);
xaConnFactory.setMinPoolSize(10);
xaConnFactory.setMaxPoolSize(50);
xaConnFactory.setUniqueResourceName("xxxxxx");
} catch (Exception e) {
e.printstacktrace();
}
return xaConnFactory;
}
@Bean(name = "jmsContainer")
public DefaultMessageListenerContainer defaultjmsContainer() throws Exception {
DefaultMessageListenerContainer container = new DefaultMessageListenerContainer();
container.setConnectionFactory(connectionFactory());
container.setDestination(gpssomeappNotify());
container.setMessageListener(appMessageListenerMDB());
container.setMaxConcurrentConsumers(1);
container.setSessionTransacted(true);
container.setTransactionManager(transactionManager);
container.setAutoStartup(someappReadQueueFlag);
container.setTaskExecutor(myTaskExecutor());
return container;
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)