2011-09-23 42 views
1

我有一個java應用程序,有長時間運行的進程和數據庫交互。它始終得到以下內容:在MYSQL中超時

 
The last packet successfully received from the server was 3,601,168 milliseconds ago. The last packet sent successfully to the server was 3,601,166 milliseconds ago. 

遠程服務器的wait_timeout 354600以秒爲單位。什麼可能是錯的?

+1

它超時! [顯而易見]無論如何,如果wait_timeout是3546000,它會更有意義,因爲它以毫秒爲單位,約等於59分鐘。這與消息中的號碼非常接近。 – Cassio

+0

@Cassio:但它是354600,我認爲這是秒,但根據文檔ms。 – user881480

回答

0

可能有一些問題,但我不相信wait_timeout是罪魁禍首,如果您的最後一個數據包是在3600s前發送/接收的,wait_timeout是354600s。你可能已經失去了與服務器的連接或其他許多事情。您需要發佈更多關於您的代碼正在做什麼以及更多關於您期望發生的事情以及實際發生的事情。

  • 旁邊的問題:MySQL的設計是爲了快速創建連接。您是否考慮過使用連接池而不是連續明確使用一個連接?

至於Cassio的評論下的問題... wait_timeout是在幾秒鐘內。 MySQL Docs - wait_timeout