问题描述
我正在使用 JMS 创建 DefaultJmsListenerContainerFactory 和 jmstemplate。还使用 Qpid 客户端库“6.4.0”连接到 Qpid 代理。 似乎对于我在启动时连接到的每个 broker 连接是成功的,但在 30 秒后,新连接正在建立并从客户端立即关闭。
日志:
AMQConnection - 我们是否已连接:true
AMQConnection -Connected with ProtocolHandler Version:0-9
AMQProtocolHandler - SEND: Frame channelId:0,bodyFrame: [ConnectionCloseBodyImpl: replyCode=200,replyTest=JMS 客户端正在关闭连接。,classId=0,methodId=0]
AMQProtocolHandler -RECV: Frame channelId:0,bodyFrame: [[ConnectionCloseBodyImpl]
AMQProtocolHandler - 客户端调用会话关闭
java 配置示例代码:
@Bean("constainerFactory")
public JmsListenerContainerFactory getContainerFactory(@Qualifier("someConnectionFactory") ConnectionFacory connectionFactory){
DefaultJmsListenerContainerFactory jmsContainerfac = new DefaultJmsListenerContainerFactory();
jmsContainerfac.setConnectionFactory(connectionFactory);
jmsContainerfac.setErrorHAndler(...);
jmsContainerfac.setSessionTransacted(false);
jmsContainerfac.setMaxMessagesPerTask(1)
jmsContainerfac.setrecoveryInterval(100000L);
return jmsContainerfac;
}
@Bean("cachingConnectionFactory")
public CachingConnectionFactory scakaCachingConnectionFactory(@Qualifier("someConnectionFactory") ConnectionFacory connectionFactory){
CachingConnectionFacotry ccf = new CachingConnectionFacotry();
ccf.setTargetConnectionfactory(connectionFactory);
ccf.setSessionCacheSize(5);
ccf.setReconnectOnException(true);
return ccf;
}
@Bean
public jmstemplate jmstemplate(@Qualifier("cachingConnectionFactory") ConnectionFacory connectionFactory){
return new jmstemplate(connectionFactory);
}
我在各种类和 Jsmtempalate 中的侦听器方法上使用 bean“containerFactory”,根据消息和错误发送响应。
我正在尝试解决 30 秒后重新连接的问题,这会导致 qpid 服务器的高流量负载,知道是什么导致了这种行为吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)