- ODBC 采用主机名注册
- 在系统的 hosts 文件中增加 IP 与机名映射关系。(这个可能多此一举)
- 升级 MDAC 到 2.7 版本。由于不知道如何查看当前 MDAC 的版本,就直接从微软网站下载的 2.7 。
[Microsoft][ODBC SQL Server Driver ]超时已过期的解决过程和方法
环境: 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 地址,会不会这就是问题所在呢。于是我进行了如下操作