记一次activemq监听Topic时莫名其妙的连接下线

这是一个之前从未遇到过的问题,因为监听启动以后消费者确实存在了一段时间。
但是异常的地方体现在,由于这个队列并不是一直有数据,一天可能只有一个时间段才有,但是再隔一段时间以后,消费者就会下线,且程序不报异常。经过了多方查阅以后,发现了是对方提供的mq配置存在问题。


对方activemq的配置

可以看到这上面transport.useInactivityMonitor以及wireFormat.maxInactivityDuration的配置分别是false和0;
问题就出在这里。
这两个参数的作用是和消费者(也可以说监听者)的连接发送心跳保持长连接。
如果设置成false以及0以后,就会造成连接断开,而且这个链接的断开竟然不被程序锁检测到,程序没有异常报错。
而当这两个参数设置成true及3000以后,问题迎刃而解。

你可能感兴趣的:(记一次activemq监听Topic时莫名其妙的连接下线)