如何解决JMS 连接在连接后关闭并每 30 秒重试一次
我正在使用 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 举报,一经查实,本站将立刻删除。