czmchen

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理 ::
            17 隨筆 :: 0 文章 :: 24 評論 :: 0 Trackbacks
          <2009年11月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          常用鏈接

          留言簿

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

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


          所以一個項目訪問數據庫比較頻繁的時候,就要用到連接池,一般連接池本人都覺得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 陳周敏 閱讀(2988) 評論(1)  編輯  收藏 所屬分類: J2EE Studying

          評論

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


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


          網站導航:
           
          主站蜘蛛池模板: 班戈县| 衡南县| 全椒县| 长子县| 耿马| 禹州市| 宣武区| 交城县| 子洲县| 博客| 赣州市| 淮北市| 定南县| 伊春市| 奉化市| 宁蒗| 永靖县| 新源县| 南木林县| 富源县| 乳山市| 博爱县| 呼玛县| 叶城县| 罗定市| 杭锦后旗| 宝清县| 麻江县| 北票市| 黎平县| 扎鲁特旗| 大姚县| 寻甸| 建湖县| 遂昌县| 京山县| 荆门市| 安龙县| 武定县| 武宣县| 会东县|