環境: OS: window2000 server Database: Sql Server 2000 中文企業版 +sp4 客戶和服務均在一台機上運行。 客戶的管理系統在正常運行近一個月後出現“[ODBC SQL server dirvier] 逾時已到期”錯誤,甚至無法再次登陸資料庫。由於系統曾正常運行過一段時間,因此我認為由代碼引發此錯誤的幾率比較小,而 MS SQL Server相關係統出錯可能性比較高。 於是我嘗試取消了中,sql server配置屬性-》串連中得逾時限制。
結果沒有任何效果。[ODBD sql server dirver]逾時已到期的問題依然出現。不過我發現,只要重新註冊 ODBC 一次,又能正常登陸了,只是此後該問題依然會頻繁出現,治標而不治本。為了儘快解決這個問題,沒有辦法,只有重新安裝了 SQL server 企業版+ SP4 ,可是令人氣結的是問題依然存在。:( 實在沒有辦法只好上google和baidu尋找前人經驗,也許是該問題產生的原因比較多而複雜吧,根據它他人的經驗竟然沒有一個能解決我系統出現的問題。此時我的心都快崩潰了。如果這個問題再不解決,就只有整個系統重裝,而這是我最不願意看到的。 然而“山窮水盡疑無路,柳暗花明又一村”,微軟網站上一篇文章引起我注意。Article ID:300420 “Connnection to SQL server Database Using IP address is unusually slow”。文章說, MDAC2.6 存在一個 bug, 如果用 IP 位址串連資料庫會很慢。這使我想起在註冊 ODBC Driver 的時候,為了避免 DNS 解析,我採用的正是 IP 位址,會不會這就是問題所在呢。於是我進行了如下操作
- ODBC 採用主機名稱註冊
- 在系統的 hosts 檔案中增加 IP 與機名映射關係。(這個可能多此一舉)
- 升級 MDAC 到 2.7 版本。由於不知道如何查看當前 MDAC 的版本,就直接從微軟網站下載的 2.7 。
時間已經過去快3天了,客戶沒有報告此錯誤出現。我想,大概我找到了它的解決辦法。 於是記下來,防備忘記。 :)