最近这一个月,公司的sql server 2008每个一个星期就会挂掉一次,然后只能重启,很烦啊,找了很多文章,有一两个讲到了这个,也不太懂。大家帮忙解答一下。
基本配置:正式环境 window server 2003+jboss+app+sqlserver2008(挂掉的机器)
sql server内存分配20G,cpu16核心 连接限制无
测试环境 window server 2003+jboss+app+sqlserver 2008
sqlserver内存分配4g cpu1核心 连接限制无
错误情况:
1、这个app是一个crm系统,运行了约一年,同事在线人数在10-20人,挂掉的时候正式环境360显示内存用了4g左右,jboss和crm系统运行完好,就是crm用户登录时连接不上sqlserver出错。
2、频率在6到7天,如果我每个5天重启一次机器,可以避免出现这个问题,但这不是个办法。
3、有些人给我指出是内存不够什么的,但测试环境那么小也没down,而且挂掉时只耗掉一点点内存。
4、连接数,这是感觉最可能出错的原因。我的连接数默认0(即最大值,约32000)。当前连接数一直在10-20人,不过以下这句话一直在增长,获取自上次启动以来连接和试图连接的数量。
1 SELECT @@CONNECTIONS
5、我搜索了很多,其中一个情况和我相似的,连接如下。我去看了一下没找到什么,window防火墙没开,360防护有开,但测试环境上也有360,没找到什么特别的。
我的豆也不多,能提供的信息都提供了,希望懂sql server 的朋友帮帮忙 ~
感觉如果是连接数的问题,你可以看看当时SQL SERVER是否可以通过SQL管理器登录,查看一下活动连接数。
或者你其他软件,比如ACCESS试试看是否可以连接到SQL SERVER。
这样一来可以确定下一步工作是要搞定SQL SERVER还是要搞定CRM,
如果还能连接,那就不是连接数不够,而是可能CRM里面哪个溢出。
当时没有看连接数,我主要是疑惑当前连接数和连接数这两个概念,因为前者一直是维持在50以下的。
SQLServerException: The TCP/IP connection to the host 10.200.100.58, port 1433 has failed. Error: No buffer space available (maximum connections reached?)
jboss日志报的错误是这个,无法连接SQLSERVER
@choseee:
其实我的意思是,找出可能的罪魁祸首。比如,你可以写一段很简单的测试NET或是随便其他代码,过30分钟连接一下数据库。
如果有一天,你的JBOSS连接不上了,看看这个连接得上连接不上。
这样可以看是否SQL SERVER主动拒绝,还是在JBOSS内部的环境造成的。
这个就是类似于二分法,把错误限定在一定范围内,这样查出错误的速度快点而已。要不然就是逐行看代码好了。
象你的标题,你是怀疑到SQL SERVER了,但是应该主要的问题是出在CRM里面。但我所说的方法可以先把SQL SERVER的嫌疑排除掉,万一不幸真是SQL SERVER的问题,那倒就好办了。
@爱编程的大叔: 问题已经结了,是window系统的tcp限制导致,与应用和数据库无关,但你的方法对缩小问题范围是有效的,谢了。
个人觉得你可以先查下SQL日志和Windows日志,应该会有一些可用信息的。
另外,你服务器上面装360?????
是不是有的连接没关闭。。。。
如果连接没关闭,当前连接数应该不断飙升才是。
@choseee: 有的连接,就是某些不常用到的地方的
crm用户登录时连接不上sqlserver出错
crm的session服务器是不是跟sql放一起了?
你是说我的web服务器和sqlserver吗,是放在一台机上的
@choseee: 这就有可能了有可能似乎crm系统的session占用内存过大导致的.你看下IIS占用的内存
先看日志吧,基本上日志里会体现出问题出在哪里。
再用SQL Server Profiler看看是不是程序的问题
今天算是把这个问题解决了,希望以后没有问题。编程大叔的建议很有效,可以进一步缩小范围。这一次的问题比较特殊,是window系统的tcp设置导致,与应用和数据库无关,修改注册表后,应该不会再出现了。把豆子分了,感谢大家的热情帮助。
LZ,你这个问题最终怎么解决的,求教。