java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Connection reset by peer: socket write error
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRPCRequest.submitRequest(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplStatement.execute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.commonExecute(Unknown Source)
at com.microsoft.jdbc.base.BaseStatement.executeQueryInternal(Unknown Source)
at com.microsoft.jdbc.base.BasePreparedStatement.executeQuery(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:92)

解决方案 »

  1.   

       这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的“停止”按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题          可能你的网络连接存在一些问题,你的数据传输的时候,可能由于时间等待的太久,但是server段设置的连接检验时间限制一定,那么就可能出现这种情况的!不过更常见的原因是:
    1:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;
    2:客户关掉了浏览器,而服务器还在给客户端发送数据;
    3:浏览器端按了Stop;
    4:服务器给客户端响应结果给防火墙拦截了。
      

  2.   

    1、下载Microsoft   SQL   Server   2000   Service   Pack   3a并安装,SQL选用混和安装模式!
      
    2、下载SQL   Server   2000   Driver   for   JDBC   Service   Pack   3 
        
    3、运行时关闭防火墙4、没有连接资源了。   
       最好使用连接池   
       每次读取完数据库要释放资源(没用连接池就直接关闭Connection)   
        
       还有检查   对数据库操作的事务。。   
       有的可能没有正确的设置事务执行完后   setAutoCommit(true)5、停止SQL服务再重新启动,能够暂时解决这个问题。
      

  3.   

    打个补丁,就ok了
    SQL2000-KB884525-SP4-x86....