Proxool錯誤:org.logicalcobwebs.proxool.HouseKeeper sweep

來源:互聯網
上載者:User

在運行一個java應用時,發現出現如下錯誤。

org.logicalcobwebs.proxool.HouseKeeper sweep
警告: #0002 was active for 634297 milliseconds and has been removed automaticaly. The Thread responsible was named 'http-8080-1', but the last SQL it performed is unknown because the trace property is not enabled.

 

相應出錯代碼:

try {<br /> conn = connect();<br /> stmt = conn.createStatement();<br /> rs = stmt.executeQuery(sql);<br /> while (rs.next()) { //報錯地方<br /> to = rs.getString("EmailTo").trim();<br /> body = rs.getString("EmailBody");<br /> subject = rs.getString("EmailSubject");<br /> from = rs.getString("EmailFrom").trim();<br /> cc = rs.getString("EmailCC").trim();<br /> send(subject, body, to, cc, bcc, from, au))<br /> }<br />} catch (SQLException e) {<br /> ErrorLog.log("get send message exception./n" + e.getMessage(),logfile);<br /> //throw e;<br />} finally {<br /> close(rs, stmt, conn);<br />} 

 

分析:

根據提示,程式中的資料庫連接沒有釋放。由此想到可能在執行sql前有connection沒有釋放。檢查,程式中擷取並使用connection的地方病不多,檢查後發現沒有問題。同時也沒有出現一個connection過多的進行擷取getConnect()。

繼續關注輸出資訊,發現rs.next()行出錯,但並不是每行都出錯。而是在迴圈到第7條左右時才發生異常。難道是連線逾時了?檢查設定檔,連線逾時時間是5秒,和迴圈7次用時基本相當。將逾時時間設大,出錯的發生的時間依次延遲了。設定為足夠迴圈完成的時間。異常消失。

 

原因:

connection為及時關閉。不過這是一個表面的原因。深層次的原因是

proxool中配置的maximum-active-time不僅對於閒置connection生效,而且對於處於活動的connection同樣生效。這樣可能將活動中的connection強制關閉。

 

解決:

該類問題需要從這幾個方面檢查:

1, 是否有connection在使用完後未及時關閉。

2, 對於一個connection是否多次的進行了getConnection()操作。

3, 檢查報錯地方的connection的生存期其執行時間和proxool設定檔中的maximum-active-time值的差異。適當增大該值。如果一個connection的操作過程中耗費時間較長,可以通過臨時變數來縮短connection的操作時間。如上例,可以定義string數組來存放,而後在用迴圈來處理這些string。

 

 

 

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.