奇怪的SQLServer“超时已过期”及“不存在或拒绝访问”错误

奇怪的SQLServer“超时已过期”及“不存在或拒绝访问”错误,第1张

概述最近有个多线程程序,连接本机SQLServer 2008,大概300个连接,跑一会自己写的日志中就会出现“超时已过期”错误,或者出现“不存在或拒绝访问”错误。奇怪在于,程序开启后肯定有联通过,是在过一会儿才会出现这样的错误。 SQLServer日志中,和windows事件簿中没有看到任何有价值的信息。 首先,不会有多个线程使用到同一个TADOConnection的状况;表的索引也建立了,单个查询不

最近有个多线程程序,连接本机sqlServer 2008,大概300个连接,跑一会自己写的日志中就会出现“超时已过期”错误,或者出现“不存在或拒绝访问”错误。奇怪在于,程序开启后肯定有联通过,是在过一会儿才会出现这样的错误。

sqlServer日志中,和windows事件簿中没有看到任何有价值的信息。

首先,不会有多个线程使用到同一个TADOConnection的状况;表的索引也建立了,单个查询不会超过1秒。

继续,发现错误出现在开启程序30秒左右时,于是试着调整TADOCOnnection/TADOCOmmand/TADODataSet的TimeOut值,调成120秒,还是不行,还是在开启程序30秒左右出错。

sqlServer允许连接数是0,无限制,再调整sqlServer本身的连接/命令超时时间,还是一样的无效。郁闷。

程序本身有问题吗?把问题简单化吧,写一个小的测试程序,开300个线程,线程中创建TADOConnection/TADODataSet,对同一个数据库的同一个表查询,新增,没有出错,即使开到600个线程也不会出错。看来也不是sqlServer不够强,再郁闷。

Google了无数资料,有说数据库文件或日志文件增长方式设置问题,导致增长时超时。不限制日志增长,试过还是不行。

sqlServer的客户端,服务器的网络配置中也没有看出问题。

..........

..........

最后,无意中把连接字串中的“Data Source=.”改成了计算机名,居然就可以了。奇怪的是,改成本机IP:192.168.3.33居然连接不上。难道是DNS问题?

总结

以上是内存溢出为你收集整理的奇怪的SQLServer“超时已过期”及“不存在或拒绝访问”错误全部内容,希望文章能够帮你解决奇怪的SQLServer“超时已过期”及“不存在或拒绝访问”错误所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1182297.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存