最近几天我一直在浏览论坛,并尝试了几乎所有我能找到的东西,但是没有任何运气。
情况是:在Java Web应用程序中,我们有ActiveMQ 5.7(我知道它很旧,最终我们将升级到较新的版本-但由于某些原因,目前无法实现)。我们只有一个经纪人和多个消费者。
启动服务器时(我尝试为2、3、4和更多服务器这样做),一切正常。服务器之间正在通信,QUEUE消息立即被消耗。但是,当我让服务器保持空闲状态(例如,终于睡个好觉)时,情况就不再如此。消息卡在数据库中,不会被良性使用。交付它们的唯一选择是重新启动服务器。
我的配置的一部分(我们将其保存在属性文件中,这是实际状态,但是我尝试了许多不同的组合):
BrokerServiceURI=broker:(tcp://0.0.0.0:{0})/{1}?persistent=true&useJmx=false&populateJMSXUserID=false&useShutdownHook=false&deleteAllMessagesOnStartup=false&enableStatistics=true
ConnectionFactoryURI=failover://({0})?initialReconnectDelay=100&timeout=6000
ConnectionFactoryServerURI=tcp://{0}:{1}?keepAlive=true&soTimeout=100&wireFormat.cacheEnabled=false&wireFormat.tightEncodingEnabled=false&wireFormat.maxInactivityDuration=0
BrokerService.startAsync=true
BrokerService.networkConnectorStartAsync=true
BrokerService.keepDurableSubsActive=false
您有线索吗?
答案 0 :(得分:0)
我实际上不能从上述描述中告诉您原因,但是我可以列出一些新的检查方法。请确认以下内容是否对您有效。
您能详细介绍一下您的消费者/生产者/经纪人配置吗?