加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

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

发布时间:2020-12-12 15:12:04 所属栏目:MsSql教程 来源:网络整理
导读:最近有个多线程程序,连接本机SQLServer 2008,大概300个连接,跑一会自己写的日志中就会出现“超时已过期”错误,或者出现“不存在或拒绝访问”错误。奇怪在于,程序开启后肯定有联通过,是在过一会儿才会出现这样的错误。 SQLServer日志中,和windows事件

最近有个多线程程序,连接本机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问题?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读