應用,一定要應用

          BlogJava 首頁 新隨筆 聯系 聚合 管理
            25 Posts :: 0 Stories :: 118 Comments :: 0 Trackbacks
          ??????自己以前做程序都是自己寫連接池,那個時候項目大,環境各異,為了便于實施,總是由自己進行連接池的管理,等到自己想做一些小東西的時候,才發現這個連接池成了一個專用的東西,和系統做了太多的綁定,只能找連接池用,用過resin自帶的連接池,再用tomcat連接池的時候就很不爽,沒有監控的功能,在網上選來選去,最后選擇了Proxool。

          ??????Proxool連接池是sourceforge下的一個開源項目,這個項目提供一個健壯、易用的連接池,最為關鍵的是這個連接池提供監控的功能,方便易用,便于發現連接泄漏的情況。開源項目地址是:
          http://proxool.sourceforge.net/


          配置連接池比較的簡單:
          1、將下載的包解開,從包中的lib目錄下將proxool-xxx.jar(xxx隨著不同的版本號變化)加入你的工程中。
          2、配置數據源:
          ??????在web-info下建立文件:proxool.xml,文件內容如下:
          <?xml version="1.0" encoding="UTF-8"?>
          <something-else-entirely>
          ? <proxool>
          ??? <alias>Develop</alias>
          ??? <driver-url>jdbc:mysql://localhost/kuanxue</driver-url>
          ??? <driver-class>com.mysql.jdbc.Driver</driver-class>
          ??? <driver-properties>
          ????? <property name="user" value="root"/>
          ????? <property name="password" value=""/>
          ????? <property name="useUnicode" value="true"/>
          ????? <property name="characterEncoding" value="GBK"/>
          ??? </driver-properties>
          ??? <maximum-connection-count>500</maximum-connection-count>
          ??? <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
          ? </proxool>
          ?</something-else-entirely>

          3、配置web.xml
          在web.xml中增加:
          <!--?配置初始化servlet,在web容器加載的時候自動加載配置文件,如果不是web程序,這個部分就需要通過開發接口來初始化了 -->
          <servlet>
          ???? <servlet-name>proxoolInitialServlet</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>
          ??? <servlet-name>dbpoolAdmin</servlet-name>
          ??? <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
          ? </servlet>
          ?? <servlet-mapping>
          ??? <servlet-name>dbpoolAdmin</servlet-name>
          ??? <url-pattern>/dbpool</url-pattern>
          ? </servlet-mapping>

          4、在程序中調用
          一般我將獲取connection的行為封裝為一個工廠模式,便于多種情況的切換,以下是其中proxool數據源的getConnection方法的實現:

          public Connection getConnection() {
          ??????? try{
          ??????????? Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");
          ??????????? return DriverManager.getConnection("proxool.Develop");
          ??????? }catch(Exception ex){
          ??????????? ex.printStackTrace();
          ??????? }
          ??????? return null;
          ??? }

          5、應用開發:
          ??????在實際的應用中,我們可能需要更多的功能,比如監控功能不夠強大,權限不好控制,我們希望能夠編寫出更強大的功能,比如殺死一些大的查詢語句等,記錄各種查詢語句占用的時間,這就需要對開發接口進行進一步的研究了。
          posted on 2006-11-02 12:00 flyffa 閱讀(5881) 評論(7)  編輯  收藏 所屬分類: 其他應用

          Feedback

          # re: Proxool連接池的簡單配置 2006-11-02 14:09 fef
          米鼠網的會員群,是我見過的最火爆的會員群,共有20個群組成,每個群里面都有軟件高手在里面為會員提供服務,所有的程序員和軟件愛好者均可以申請加入群,只是加入以后必須馬上注冊會員(會員的注冊是免費的)且必須經常上線參與討論,否則有可能會被踢出群。
          32141532 32141736,32141620
          米鼠網的論壇也很有特色,所有發帖均有無一不漏均可以得到解答可見論壇里是高手如云啊!!!
          米鼠網的論壇地址是:www.huazimc.com
            回復  更多評論
            

          # re: Proxool連接池的簡單配置 2006-11-02 16:09 榮海
          文件名WEB-INF/classes/Proxool.properties
          jdbc-0.proxool.alias=BBSWRH
          jdbc-0.proxool.driver-class=com.mysql.jdbc.Driver
          jdbc-0.proxool.driver-url=jdbc:mysql://localhost:3306/bbs?user=root&password=password&useUnicode=true&characterEncoding=UTF-8
          jdbc-0.proxool.maximum-connection-count=100
          jdbc-0.proxool.prototype-count=4
          jdbc-0.proxool.house-keeping-test-sql=select CURRENT_DATE
          jdbc-0.proxool.verbose=true


          <servlet>
          <servlet-name>ServletConfigurator</servlet-name>
          <servlet-class>
          org.logicalcobwebs.proxool.configuration.ServletConfigurator
          </servlet-class>
          <init-param>
          <param-name>propertyFile</param-name>
          <param-value>/WEB-INF/classes/Proxool.properties</param-value>
          </init-param>
          <load-on-startup>1</load-on-startup>
          </servlet>



          這一行可以這樣
          con = DriverManager.getConnection("proxool.BBSWRH");

          這也是一種方法  回復  更多評論
            

          # re: Proxool連接池的簡單配置 2006-11-02 23:10 Tin
          應該補充一個重要問題:
          Proxool是為了那些實現的時候并沒有考慮連接池的問題,而直接使用了JDBC連接的項目使用的。Proxool對JDBC連接進行了池化封裝,可以相對透明的讓你的應用增加連接池的能力。
          而對于新的應用,可以考慮c3p0或dbcp。:D  回復  更多評論
            

          # re: Proxool連接池的簡單配置 2006-11-03 13:18 flyffa
          @Tin
          那c3p0和dbcp是不是在性能上有特殊的優勢,還是使用上有什么優勢。

          proxool從我使用來說是很方便的,我只是將我的工廠類做了一個新的實例就搞定了,而且他本身有監控功能,應該也有開放的開發口,雖然我還沒有仔細的去研究。

          c3p0和dbcp是不是也具備同樣的特性呢?  回復  更多評論
            

          # re: Proxool連接池的簡單配置 2006-11-03 13:19 flyffa
          @榮海
          你是property法,呵呵,我一般不太喜歡用property文件寫配置,不過還是非常感謝  回復  更多評論
            

          # re: Proxool連接池的簡單配置 2008-02-25 17:14
          我遇到一個問題,我的程序使用的是proxool連接池對連接對象進行管理。當數據庫當掉重啟之后,怎樣才能讓它自動恢復連接呢? 希望你能夠給個答案吧! 不知道在proxool中怎么配置呢?   回復  更多評論
            

          # re: Proxool連接池的簡單配置 2014-05-04 20:32 okok
          @榮海
          謝謝,果然不用反射也可以,properties和xml各有各有脾益。都是高手啊。  回復  更多評論
            

          主站蜘蛛池模板: 罗城| 凯里市| 南雄市| 宜城市| 曲水县| 大荔县| 若羌县| 赞皇县| 永宁县| 小金县| 望谟县| 巨野县| 青冈县| 平安县| 惠水县| 清水河县| 德江县| 成都市| 安平县| 江永县| 榆树市| 开平市| 景泰县| 陈巴尔虎旗| 民和| 安国市| 龙海市| 临澧县| 太白县| 阿荣旗| 长岭县| 鸡泽县| 滦平县| 翼城县| 东港市| 房山区| 余庆县| 日照市| 淮南市| 河曲县| 曲靖市|