我有一個activemq安裝與主/從故障轉移。 主和從同步使用租賃數據庫更衣室 主機和從機在2臺不同的機器上運行,數據庫位於第三臺機器上。activemq master不放棄網絡故障
故障轉移和客戶端重新連接在主代理強制關閉時正常工作。由於其故障轉移設置,從屬設備正常接管並且客戶端重新連接。
如果我只在主代理上模擬網絡中斷,問題就會出現。這是通過使用iptables下降規則來執行到主數據庫上的數據包來完成的。
主人現在意識到,它無法再連接到數據庫。從機啓動,因爲它的網絡連接仍然存在。 從日誌看來,客戶端仍然嘗試重新連接到沒有響應的主服務器
爲了我的理解,主服務器應該通知客戶端,不再有任何連接。客戶端應該故障轉移並重新連接到從站。 但是這沒有發生。
如果我通過重新啓用到主數據庫的網絡連接重新建立數據庫連接,客戶端會重新連接到從站。主人然後放棄主人。
- 我已經在lease-database-locker上設置了queryTimeout。
- 我爲傳輸連接器設置了updateClusterClients = true。
- 我已經在數據庫連接上設置了一個10秒的validationQueryTimeout。
- 我已經設置了數據庫連接
有沒有辦法強制主告知客戶在這種特殊情況下故障轉移一個testOnBorrow?
我很抱歉,但這不是解決辦法。如果代理同時訪問數據庫,則故障轉移正在工作。故障轉移網址在所有客戶端都是正確的。如果主服務器不再有數據庫連接,則會出現問題,如果恢復連接,它立即生效。我想我可能有一個連接到ioExceptionHandling的問題。 –
由於你的問題並沒有提供足夠的細節,所以完整的解決方案將很難 –