You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ActiveMQ Artemis中STOMP连接设置connection TTL=-1不生效问题

ActiveMQ Artemis 连接超时问题排查与解决

你遇到的AMQ229014错误说明服务器仍在使用60秒的默认连接TTL,即便你已经设置了-1,可以从以下几个方向排查修复:

  • 确认connection-ttl-override配置在STOMP专属的Acceptor上
    全局的<connection-ttl-override>配置可能不会覆盖特定协议Acceptor的默认值,需要直接在STOMP的Acceptor配置中指定参数。修改broker.xml中的STOMP Acceptor配置:

    <acceptor name="stomp-acceptor">tcp://0.0.0.0:61613?protocols=STOMP;connection-ttl-override=-1</acceptor>
    

    或者使用XML参数标签的形式:

    <acceptor name="stomp-acceptor">
      <factory-class>org.apache.activemq.artemis.core.remoting.impl.netty.NettyAcceptorFactory</factory-class>
      <param name="tcp-port" value="61613"/>
      <param name="protocols" value="STOMP"/>
      <param name="connection-ttl-override" value="-1"/>
    </acceptor>
    
  • 检查客户端STOMP CONNECT帧的心跳配置
    如果客户端没有发送任何数据(包括心跳),服务器可能仍会触发超时。确保客户端在CONNECT帧中设置正确的心跳参数:

    • 若不需要心跳,设置heart-beat: 0,0
    • 若需要心跳,确保客户端按配置间隔发送心跳帧,避免服务器因长时间无数据触发超时
  • 排查全局配置冲突
    检查broker.xml的<core>段中是否存在<connection-ttl>配置,如果该值被设为60000,可能会覆盖你的override配置。可以将全局<connection-ttl>也设为-1,或者确保Acceptor的connection-ttl-override优先级更高。

  • 验证配置生效状态
    启动Broker后,查看启动日志中STOMP Acceptor的参数输出,确认connection-ttl-override已被正确加载为-1;也可以通过Artemis控制台查看Acceptor的配置详情,确认参数无误。

内容的提问来源于stack exchange,提问作者Md Jameel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 07:43:39