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 (将#修改为@)