我有一个activemq安装与主/从故障转移。 主和从同步使用租赁数据库更衣室 主机和从机在2台不同的机器上运行,数据库位于第三台机器上。activemq master不放弃网络故障
故障转移和客户端重新连接在主代理强制关闭时正常工作。由于其故障转移设置,从属设备正常接管并且客户端重新连接。
如果我只在主代理上模拟网络中断,问题就会出现。这是通过使用iptables下降规则来执行到主数据库上的数据包来完成的。
主人现在意识到,它无法再连接到数据库。从机启动,因为它的网络连接仍然存在。 从日志看来,客户端仍然尝试重新连接到没有响应的主服务器
为了我的理解,主服务器应该通知客户端,不再有任何连接。客户端应该故障转移并重新连接到从站。 但是这没有发生。
如果我通过重新启用到主数据库的网络连接重新建立数据库连接,客户端会重新连接到从站。主人然后放弃主人。
- 我已经在lease-database-locker上设置了queryTimeout。
- 我为传输连接器设置了updateClusterClients = true。
- 我已经在数据库连接上设置了一个10秒的validationQueryTimeout。
- 我已经设置了数据库连接
有没有办法强制主告知客户在这种特殊情况下故障转移一个testOnBorrow?
我很抱歉,但这不是解决办法。如果代理同时访问数据库,则故障转移正在工作。故障转移网址在所有客户端都是正确的。如果主服务器不再有数据库连接,则会出现问题,如果恢复连接,它立即生效。我想我可能有一个连接到ioExceptionHandling的问题。 –
由于你的问题并没有提供足够的细节,所以完整的解决方案将很难 –