日期:2014-05-20  浏览次数:20903 次

数据库连接的问题,运行中发生的.顶者有分.
web程序先报了一个
(provider:   TCP   Provider,   error:   0   -   The   specified   network   name   is   no   longer   available.).Net   SqlClient   Data   Provider
之后全是
Timeout   expired.     The   timeout   period   elapsed   prior   to   completion   of   the   operation   or   the   server   is   not   responding..Net   SqlClient   Data   Provider
几个小时都没有恢复正常.

web服务器重启后,正常,几天了都没有报错.数据库在另一台机器上.

问一下大家是不是有什么隐患?怎么改进?

------解决方案--------------------
这个应该是 数据库 服务器
负载 过大
引起 链接超时

------解决方案--------------------
是不是你程序中有很多数据库链接没有释放啊
------解决方案--------------------
资源没有释放。
------解决方案--------------------
资源没有释放,sql连接池没有可用资源,sql请求队例已满,so 链接超时
------解决方案--------------------
估计是连接池已经满了吧。是不是连接没有得到及时的释放啊
------解决方案--------------------
网络问题
------解决方案--------------------
一就是网络不稳定,第一种可以在企业管理器连接一下看看,能不能连接上,
二就是你的程序有问题,资源没有释放
------解决方案--------------------
web服务器重启就好了?而不是数据库服务器?如果这样,那应该是web服务器的问题啊,检查网络,日志
------解决方案--------------------
你对数据库的连接没有释放,以致每次访问都建立了一个连接,最后连接池爆满于是……

------解决方案--------------------
这个应该是数据库连接没有关闭引起的
打开数据库执行操作完毕后应该立即显式关闭数据库连接
包括出现异常也应该这么操作

之所以web服务器重启后恢复正常
是因为web服务器重启后 数据库会判断该应用程序所请求的连接为无效后再释放这些连接
目前你重点检查数据库连接是不是在执行完毕以后立即关闭
其次检查一下DataReader是不是保持时间过长 等等
个人以为Web服务器引起的这个可能非常小
------解决方案--------------------
这个错误并不是SQL引发的,而是由于操作系统关闭了一个TCP一端的连接而引起的
------解决方案--------------------
如果你连接后, 长时间没有做任何动作,有时也会有这个信息.
------解决方案--------------------
估计是连接池太小,或者没有正确关闭连接。
------解决方案--------------------
学习中......
------解决方案--------------------
还没解决?
------解决方案--------------------
ding
------解决方案--------------------
bang ding !
------解决方案--------------------
学习中......

------解决方案--------------------
帮顶
------解决方案--------------------
不明白,帮顶
------解决方案--------------------
TO:大型系统的部署能不能提供些资料.

其实我也没有实际操作过,只是有这么个概念...

大型系统(比如一些比较大的网站或者其他),一旦服务器崩溃,后果是难以想像的,为了提高容错性,会采用双机系统(或者更多),两台服务器上基本一样,也就是一台是另一台的备份,如果一台出现故障,就会自动切换到另一台服务器,以避免不必要的损失..

就像你的,如果检测到网络出现帮障,就尝试连接另外一个服务器...

我也是根据我的理解瞎说的,仅供参考..
------解决方案--------------------
cluster效果最好。其他方式多少都有些瑕疵。
------解决方案--------------------