2011-01-05 87 views
1

我使用Delphi 2007開發了一個Windows服務。它使用TAdoConnection和TAdoQuery通過Internet連接到遠程MySql數據庫。我保留默認值爲30秒的CommandTimeout屬性。我還在每個新查詢上創建連接/查詢對象,並在完成時釋放它們(即,我在啓動時不創建數據庫連接並保持打開狀態)。「在查詢過程中丟失與MySQL服務器的連接」殺死Windows服務

每隔一段時間,服務停止並且事件查看器顯示「在查詢過程中丟失與MySQL服務器的連接」。我有一切都包在例外。我懷疑在執行查詢時網絡有一個下降。

任何人有任何解決方案/想法?

什麼觸發窗口關閉服務?

此外,我有服務「恢復」設置爲重新啓動服務,但這從來沒有發生。

我的下一步將是當每個查詢開始時開始記錄,並將其與關機的日期/時間進行比較。因爲截至目前我不知道這是怎麼記錄的。

+0

您需要記錄每個查詢並添加一個全局異常處理程序,同時還要記錄日誌。 – cja 2013-02-18 13:59:48

回答

0

這可能不是一個直接的答案,但我前幾天也有同樣的問題,並且我在本地服務器上有mysql,並且我使用Mydac組件連接。

多次嘗試之後,我發現從具有BLOB字段一個表中的問題就來了,我想在桌子上查詢像

SELECT * FROM表

而且我得到了這個問題在查詢獲取大約1600行後,經過幾次檢查後,我發現問題來自少量記錄,似乎它們已損壞。所以,當我查詢像

SELECT * FROM我的表其中id不能和1650 之間1599

我有這個問題,如果我刪除Not從他們查詢哪些只取回51條記錄我錯誤,這意味着有一些記錄被損壞,我也做了mysqlcheck,但它沒有解決問題,並且我嘗試了一些其他檢查工具並得到了相同的結果,我沒有試圖刪除這些記錄,因爲我需要爲什麼會出現這個問題,但我忙於其他事情,所以我離開了服務器一段時間。

順便說一句,我用MySql查詢瀏覽器試圖做查詢,因爲其他工具會給我的錯誤,而不會顯示mysql實例意外終止之前提取的記錄數。

+0

我也遇到過這種情況。但是我很抱歉地說它不相關。這是一個非常簡單的表格(儘管有備忘錄)。而且我知道這不是因爲同樣的記錄被一遍又一遍地讀取。 – 2011-01-06 01:23:19

相關問題