酒醒無夢

          我在幻象的迷留界徘徊,誰來指引幻象的輪回?

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            8 Posts :: 0 Stories :: 0 Comments :: 0 Trackbacks
          1 問題描述
          Web程序在tomcat剛開始運行時速度很快,但過一段時間后發現速度變得很慢。
          檢查日志輸出,發現異常如下:
          org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted, cause:
          java.util.NoSuchElementException: Timeout waiting for idle object

          2 問題解決
          tomcat 的數據源定義提供了三個參數:
          a. 如果設為true則tomcat自動檢查恢復重新利用,沒有正常關閉的Connection.(默認是false)
          <parameter>
          <name>removeAbandoned</name>
          <value>true</value>
          </parameter>
          b. 設定連接在多少秒內被認為是放棄的連接,即可進行恢復利用。
          <parameter>
          <name>removeAbandonedTimeout</name>
          <value>60</value>
          </parameter>
          c. 輸出回收的日志,可以詳細打印出異常從而發現是在那里發生了泄漏
          <parameter>
          <name>logAbandoned</name>
          <value>true</value>
          </parameter>

          關于回收日志,大致上是以 dbcp object by the following code was never closed 形式開頭。
          此外 擴大maxActive的值,也有一定幫助。
          配置好連接池的參數,問題解決。還需要注意的是,代碼中關于數據庫查詢部分的寫法。

          posted on 2010-05-25 13:26 Rock N' Java 閱讀(231) 評論(0)  編輯  收藏 所屬分類: Programming
          主站蜘蛛池模板: 深水埗区| 西和县| 山西省| 万山特区| 张家口市| 南丹县| 阜新市| 鹿邑县| 阿城市| 保靖县| 黔南| 广昌县| 栖霞市| 阳山县| 宣汉县| 泾源县| 噶尔县| 遵义市| 武冈市| 铜山县| 琼中| 新津县| 惠东县| 葫芦岛市| 德保县| 多伦县| 鹤庆县| 富裕县| 仁怀市| 宁武县| 米易县| 满城县| 桓台县| 同德县| 柳林县| 成武县| 庄浪县| 关岭| 台安县| 吉安县| 夏邑县|