應(yīng)用,一定要應(yīng)用

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

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


          配置連接池比較的簡單:
          1、將下載的包解開,從包中的lib目錄下將proxool-xxx.jar(xxx隨著不同的版本號變化)加入你的工程中。
          2、配置數(shù)據(jù)源:
          ??????在web-info下建立文件:proxool.xml,文件內(nèi)容如下:
          <?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程序,這個部分就需要通過開發(fā)接口來初始化了 -->
          <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>
          <!--配置監(jiān)控servlet,其實如果不想監(jiān)控的話,可以不配-->
          ?? <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、在程序中調(diào)用
          一般我將獲取connection的行為封裝為一個工廠模式,便于多種情況的切換,以下是其中proxool數(shù)據(jù)源的getConnection方法的實現(xiàn):

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

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

          Feedback

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

          # 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");

          這也是一種方法  回復(fù)  更多評論
            

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

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

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

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

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

          # re: Proxool連接池的簡單配置 2008-02-25 17:14
          我遇到一個問題,我的程序使用的是proxool連接池對連接對象進(jìn)行管理。當(dāng)數(shù)據(jù)庫當(dāng)?shù)糁貑⒅?,怎樣才能讓它自動恢?fù)連接呢? 希望你能夠給個答案吧! 不知道在proxool中怎么配置呢?   回復(fù)  更多評論
            

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

          主站蜘蛛池模板: 东乌珠穆沁旗| 随州市| 巴东县| 三穗县| 呼图壁县| 句容市| 古田县| 开封县| 怀化市| 闸北区| 定远县| 曲周县| 留坝县| 阜南县| 青铜峡市| 章丘市| 巴马| 景德镇市| 西吉县| 仪征市| 墨脱县| 高青县| 莱阳市| 河曲县| 云霄县| 盈江县| 略阳县| 收藏| 琼中| 精河县| 彰化市| 丹东市| 清徐县| 阿拉善右旗| 南江县| 中方县| 天镇县| 九龙县| 竹溪县| 门头沟区| 且末县|