2010-08-19 114 views
0

我有一個使用ODBC函數進行數據庫訪問的PHP應用程序。我的DBA最近發現應用程序沒有關閉其數據庫連接,導致大量處於TIME_WAIT狀態的無效連接。PHP ODBC不關閉連接

我們檢查了代碼,我在每個腳本中都做了一次odbc_close_all調用,再加上即使我沒有,那麼連接仍然應該在腳本結尾處關閉。有沒有長時間運行的腳本堅持他們的連接

有沒有人看到這樣的事情或有任何想法可能是什麼問題?

PHP版本5.1.4是運行 在Windows Server 2003 R2的Service Pack 2 MySQL數據庫

+0

謝謝!會做。 – wshato 2010-08-19 15:55:11

+0

最好在serverfault.com上問這個問題。我們的親愛的同事管理員可能更適合告訴你關於TIME_WAIT,SO_REUSEADDR,MaxUserPort和TcpTimedWaitDelay的所有知識,以及如何調整一些窗口設置以解決問題。你的腳本最有可能沒有錯。 TIME_WAIT表示確實已關閉連接,但操作系統將地址/端口保留一段時間。連接池很可能不是你想要的,儘管_sort of_ possible可能是這樣的:http://docs.php.net/manual/en/function.odbc-pconnect – VolkerK 2010-08-19 15:55:33

+0

爲什麼使用ODBC連接到MySQL以開始? – Charles 2010-08-19 17:43:12

回答

0

經過反覆研究,我們偶然發現表明,這個問題是幾個來源TcpTimedWaitDelay(感謝VolkerK冰山) 。這對我們幫助很大,但是在任何時候,我們仍然會在TIME_WAIT州看到大約30-40個連接。

我們想知道現在是否有人對Windows服務器的這種行爲是否正常提供了建議,如果這種情況一樣好,或者有其他途徑值得研究。

謝謝