czmchen

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            17 隨筆 :: 0 文章 :: 24 評論 :: 0 Trackbacks
          連接池是負責分配、管理和釋放數據庫連接,它允許應用程序重復使用一個現有的數據庫連接,而再不是重新建立一個;釋放空閑時間超過最大空閑時間的數據庫連接來避免因為沒有釋放數據庫連接而引起的數據庫連接遺漏。這項技術能明顯提高對數據庫操作的性能


          所以一個項目訪問數據庫比較頻繁的時候,就要用到連接池,一般連接池本人都覺得proxool比較好(這個網上的都是這樣說,呵呵),我以前一直都用C3P0連接池,發覺速度還不錯,不過不大穩定!
          不說那么多,淺談下我的proxool的經驗

          準備前的工作:
          到proxool官網http://proxool.sourceforge.net/上下載JAR包和文檔
          然后解壓,把里面的proxool-0.9.1.jar和proxool-cglib.jar放到你的服務器的lib下面(好像我用的是TOMCAT,就放到TOMCAT的lib里面,供TOMCAT調用)

          先在WEB-INF下建立以個proxool.xml的文件
          詳細的配置以下:

          <?xml version="1.0" encoding="UTF-8"?>
          <!--
              Document   : proxool.xml
              Created on : 2009年11月9日, 下午3:15
              Author     : Administrator
              Description:
                  Purpose of the document follows.
          -->
          <something-else-entirely>
              <proxool>
                  <alias>mypool</alias>

                  <driver-url>jdbc:mysql://localhost/czm?characterEncoding=utf-8</driver-url>
                  <driver-class>com.mysql.jdbc.Driver</driver-class>

                  <driver-properties>
                      <property name="user" value="root"/>
                      <property name="password" value=""/>
                  </driver-properties>

                  <!-- proxool自動偵察各個連接狀態的時間間隔(毫秒),偵察到空閑的連接就馬上回收,超時的銷毀-->
                  <house-keeping-sleep-time>300000</house-keeping-sleep-time>

                  <!--最大的等待請求數,即因沒有空閑連接可以分配而在隊列中等候的最大請求數,超過這個請求數的用戶連接就不會被接受-->
                  <proxool.simultaneous-build-throttle>200</proxool.simultaneous-build-throttle>

                  <!-- maximum-new-connections>50</maximum-new-connections-->

                   <!-- 最少保持的空閑連接數-->
                  <prototype-count>5</prototype-count>
                  <!-- 允許最大連接數,超過了這個連接,再有請求時,就排在隊列中等候,最大的等待請求數由maximum-new-connections決定-->
                  <maximum-connection-count>100</maximum-connection-count>

                   <!-- 最小連接數-->
                  <minimum-connection-count>25</minimum-connection-count>      

                  <maximum-active-time>300000</maximum-active-time>
                  <maximum-connection-lifetime>3600000</maximum-connection-lifetime>


                  <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>

              </proxool>
          </something-else-entirely>



          接著在web.xml下做個插件
          詳細配置以下:

          <servlet>
                  <servlet-name>ServletConfigurator</servlet-name>
                  <servlet-class>org.logicalcobwebs.proxool.configuration.ServletConfigurator</servlet-class>
                  <init-param>
                      <param-name>xmlFile</param-name>
                      <param-value>WEB-INF/proxool.xml</param-value>
                  </init-param>
                  <load-on-startup>1</load-on-startup>
              </servlet>
              <servlet>
                  <servlet-name>Admin</servlet-name>
                  <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
              </servlet>
              <servlet-mapping>
                  <servlet-name>Admin</servlet-name>
                  <url-pattern>/proxool</url-pattern><!--這個設置是你的項目的上下文路徑-->
              </servlet-mapping>

          web.xml配置完后,剩下的就是寫個測試連接類
          新建一個jsp頁面,頁面內容以下:

          <%@page contentType="text/html" pageEncoding="UTF-8"%>
          <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
          "http://www.w3.org/TR/html4/loose.dtd">

          <html>
              <head>
                  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
                  <title>JSP Page</title>
              </head>
              <body>
                  <%
                  java.sql.Connection conn = java.sql.DriverManager.getConnection("proxool.myself");
                  System.out.println("conn:" + conn);
                  out.print("conn:" + conn);
                  conn.close();
                  %>
              </body>
          </html>


          OK.運行該頁面看看是否成功?
          以前我就是在類中測試,發覺它連接不上,報
          java.sql.SQLException: No suitable driver found for proxool.myself
          的錯誤。
          所以一定要用JSP或servlet來測試,因為它調用到服務器


          posted on 2009-11-10 15:47 陳周敏 閱讀(2991) 評論(1)  編輯  收藏 所屬分類: J2EE Studying

          評論

          # re: 淺談proxool連接池經驗 2009-11-10 16:38 Elvea
          暈死,你在Web容器中初始化,在類中單獨測試肯定有問題  回復  更多評論
            


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 武定县| 雅江县| 闽侯县| 璧山县| 张家界市| 和平县| 怀远县| 饶平县| 夏河县| 卢龙县| 双城市| 抚松县| 开鲁县| 焉耆| 盱眙县| 吕梁市| 泊头市| 佛学| 子长县| 汉中市| 岑巩县| 新干县| 东丰县| 晴隆县| 会昌县| 全南县| 历史| 嘉鱼县| 藁城市| 江陵县| 平凉市| 连江县| 兴义市| 车险| 福清市| 鹿邑县| 冷水江市| 盐津县| 井陉县| 凤山市| 河间市|