spring+ibatis問題1—— 程序報錯:java.sql.SQLException: Io 異常: Connection reset by peer, socket write error; ”或“java.sql.SQLException 關閉的連接”異常


轉自:http://blog.sina.com.cn/s/blog_1549fb0710102whz2.html

  spring+ibatis程序測試時報錯:java.sql.SQLException: Io 異常: Connection reset by peer, socket write error; 

    sql-map-config.xml配置:

      <transactionManager type="JDBC" >
        <dataSource type="DBCP">
          <property value="${drivers}" name="JDBC.Driver" />
          <property value="${url}" name="JDBC.ConnectionURL" />
          <property value="${user}" name="JDBC.Username" />
          <property value="${password}" name="JDBC.Password" />
          <property value="${maxActive}" name="Pool.MaximumActiveConnections" />
          <property value="${maxIdle}" name="Pool.MaximumIdleConnections" />
          <property value="${maxWait}" name="Pool.MaximumWait" />
<property name="validationQuery" value="select * from dual"/>
        </dataSource>
      </transactionManager>  

    該問題主要是由於連接時間過長,失效所致,將sql-map-config.xml中的“dataSource”配置修改如下:

      <transactionManager type="JDBC" > 
        <dataSource type="DBCP">
          <property value="${drivers}" name="JDBC.Driver" />
          <property value="${url}" name="JDBC.ConnectionURL" />
          <property value="${user}" name="JDBC.Username" />
          <property value="${password}" name="JDBC.Password" />
          <property value="${maxActive}" name="Pool.MaximumActiveConnections" />
          <property value="${maxIdle}" name="Pool.MaximumIdleConnections" />
          <property value="${maxWait}" name="Pool.MaximumWait" />
          <property name="validationQuery" value="select * from dual"/>
        </dataSource>
      </transactionManager>

    當數據庫連接池中的連接被創建而長時間不使用的情況下,該連接會自動回收並失效,但客戶端並不知道,在進行數據庫操作時仍然使用的是無效的數據庫連接,這樣,就導致客戶端程序報“ java.sql.SQLException: Io 異常: Connection reset by    peer, socket write error; ”或“java.sql.SQLException 關閉的連接”異常,加上 

          <property name="validationQuery" value="select * from dual"/>

配置后,客戶端在使用一個無效的連接時會先對該連接進行測試,如果發現該連接已經無效,則重新從連接池獲取有效數據庫連接來使用。

  注意:網絡不穩定或網絡信號差也會報這種異常。

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM