我目前在一個涉及mysql的java程序中工作。我遇到了一個問題這些消息:設置MySql的wait_timeout會話變量
通信鏈路故障。從服務器成功收到的最後一個數據包 爲174,165,153毫秒前。最後一個數據包成功發送到服務器 是4毫秒前。
我相信這與會話變量'wait_timeout'有關。我的假設可能是錯誤的,所以我在此確認。這真的是因爲'wait_timeout'會話變量?這個錯誤是否意味着我的數據庫連接「已過期」,因爲會話超時已經失效?如果是的話,我有另一個問題..我不能重現上述錯誤..
這是我想要複製錯誤。
設置
wait_timeout
變量5
這是原本28800
(8個小時)。mysql> set session wait_timeout=5;
考慮到我的下一次嘗試訪問數據庫將應用此,我將運行這段代碼:
Class.forName("com.mysql.jdbc.Driver"); oConnection = DriverManager.getConnection(sUrl,sUser,sPass); System.out.println("Database Connection Established.\n"); Thread.sleep(6000); executeSimpleQuery();
的
executeSimpleQuery()
功能只是執行一個簡單的SELECT * FROM
語句來檢查連接是否還在工作。顯然,如果wait_timeout只有5,並且讓線程休眠6秒,連接現在就會過期,並且應該產生錯誤。但是,預期的結果不會發生,而是執行查詢。
我該怎麼做才能複製錯誤?
非常感謝你這一點。雖然我沒有使用wait_timeout的全局設置,因爲我需要處理每個會話的連接。再次感謝 – Oneb