Win2003 + Tomcat6 + SQL2000
一个JSP页面,调用了两个连接对象,我用vbs写了访问脚本,才几十个并发数就返回异常,如下com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Address already in use: connect。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。 大家帮我分析分析是什么原因
一个JSP页面,调用了两个连接对象,我用vbs写了访问脚本,才几十个并发数就返回异常,如下com.microsoft.sqlserver.jdbc.SQLServerException: 通过端口 1433 连接到主机 localhost 的 TCP/IP 连接失败。错误:“Address already in use: connect。请验证连接属性,并检查 SQL Server 的实例正在主机上运行,且在此端口接受 TCP/IP 连接,还要确保防火墙没有阻止到此端口的 TCP 连接。”。 大家帮我分析分析是什么原因
你自己在dao中,打开了链接,用完了就立即关闭啊。否则很容易报连接数不够的。
String url="jdbc:sqlserver://localhost:1433;user=***;password=***;databasename=***";
Connection con=DriverManager.getConnection(url);
似乎是因为你用了1433端口(客户端)来连接数据库sqlserver默认监听的是1433端口,也就是说1433已经被占用
而你的客户端和你的数据库服务器在同一台机子上...却仍然用1433(已被占用)来连接数据库
所以报错了
你几十个“并发”,这个时候你说的那些Connection、ResultSet、Statement之类的都还没有关闭呢。所以关键问题在SQL Server的并发限制。
每个操作都有关闭,看过SQL2000的属性,设置是0,没有限制
http://topic.csdn.net/u/20090520/15/3aa9add9-5e8d-427b-9447-f23065a879b1.html
请看第10楼:
http://support.microsoft.com/kb/328476/zh-cn
像lz这样直接用jdbc的话,很容易挂掉的good luck