我在ActiveMQ和Stomp连接中遇到了一个非常不寻常的问题。我已将其集成到我的网站中,当网站上甚至计算机上有任何活动时(即使打开网站的浏览器最小化),它也能正常工作。每当计算机进入空闲模式超过10分钟时,ActiveMQ和STOMP之间的连接就会关闭,之后即使用户再次最大化浏览器,也不会进行通信,也不会进行更新。
我正在使用的版本 activemq:5.9.0 STOM:1.0.9
我正在使用以下配置设置 transportConnector name =" wss" URI =" WSS://0.0.0.0:61614 maximumConnections = 1000&安培; wireFormat.maxFrameSize = 104857600&安培; wireFormat.maxInactivityDuration = 5亿&安培; wireFormat.maxInactivityDurationInitalDelay = 36000000&安培; websocket.maxIdleTime = 0&安培; transport.useInactivityMonitor =假&# 34;
我做错了什么?我已经尝试了上述参数的所有可能组合,但结果是相同的,在空闲时间内持续时间增量的变化很小,之后连接将丢失。
我想要的是,无论用户是否使用浏览器/计算机,连接都应保持活动状态。
提前感谢您提供的帮助。
更新1: 这是我在日志文件中收到的错误 失败:org.apache.activemq.transport.InactivityIOException:频道已停用太长时间
答案 0 :(得分:0)
ActiveMQConnectionFactory具有名为
的属性的idleTimeout
,默认值为30秒。 IF连接在30秒内没有活动,然后由不活动监视器关闭,但如果要增加此限制,则应将IdleTimeout设置为15分钟。在您的Jms ConnectionFactory中使用方法
factory.setIdleTimeout(15 * 60 * 1000)