Wayne
          井底的蛙--一直仰望著天空
          posts - 16,comments - 6,trackbacks - 0
          Proxool技術(shù)是一種開(kāi)源的java連接池技術(shù),具體介紹google或者百度之。項(xiàng)目組使用它的原因是它在性能上和易用性上都有很大的優(yōu)勢(shì)。
              1,下載與安裝
              http://proxool.sourceforge.net/ 頁(yè)面下載jar文件,將路徑加入到project的buildpath里面
              2,配置
              在proxool主站的配置頁(yè)下,介紹了5種配置proxool連接池的方法,當(dāng)然目前最直接最方便和通用的無(wú)疑是強(qiáng)大的xml技術(shù),因此我們采用的就是利用xml配置文件進(jìn)行配置的方法。
          下面是一段配置文件proxool.xml的示例(數(shù)據(jù)庫(kù)采用的是sqlserver):
           1 <?xml version="1.0" encoding="UTF-8"?>
           2 <something-else-entirely>
           3   <proxool>
           4     <alias>your_own_name</alias>
           5     <driver-url>jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=database_name</driver-url>
           6     <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
           7     <driver-properties>
           8       <property name="user" value="xxxxxx"/>
           9       <property name="password" value="xxxxxx"/>
          10     </driver-properties>
          11     <maximum-connection-count>5</maximum-connection-count>
          12     <minimum-connection-count>2</minimum-connection-count>
          13     <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
          14   </proxool>
          15   <proxool>
          16     <alias>xxxx</alias>
          17     <driver-url>jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=another_database_name</driver-url>
          18     <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
          19     <driver-properties>
          20       <property name="user" value="xxxxxx"/>
          21       <property name="password" value="xxxxxx"/>
          22     </driver-properties>
          23     <maximum-connection-count>5</maximum-connection-count>
          24     <minimum-connection-count>2</minimum-connection-count>
          25     <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
          26   </proxool>
          27 </something-else-entirely>
          28 

          配置文件中的一些內(nèi)容需要修改成自己項(xiàng)目對(duì)應(yīng)的信息。
           1.<alias>  :為該連接池起一個(gè)別名,在其他文件中引用。引用是:(proxool.your_own_name);
           2. <driver-url>jdbc:microsoft:sqlserver://ip.ip.ip.ip:1433;DatabaseName=another_database_name</driver-url>
              <driver-class>com.microsoft.jdbc.sqlserver.SQLServerDriver</driver-class>
                <driver-properties>
                <property name="user" value="xxxxxx"/>
                <property name="password" value="xxxxxx"/>
              </driver-properties>
              這些配置大家應(yīng)該比較熟悉吧。配置JDBC連接不同數(shù)據(jù)庫(kù)的驅(qū)動(dòng)類(lèi)和連接URL。
           4.<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>
              proxool在未斷開(kāi)的連接空閑的時(shí)候 會(huì)隔段時(shí)間執(zhí)行這條sql語(yǔ)句以維持連接
           5.<maximum-new-connections>:指因未有空閑連接可以分配而在隊(duì)列中等候的最大請(qǐng)求數(shù),超過(guò)這個(gè)請(qǐng)求數(shù)的用戶(hù)連接就不會(huì)被接受。
           6.<prototype-count>:最少保持的空閑連接數(shù)。
           7.<maximum-connection-count>: 允許最大連接數(shù),超過(guò)了這個(gè)連接,再有請(qǐng)求時(shí),就排在隊(duì)列中等候,最大的等待請(qǐng)求數(shù)由maximum-new-connections決定
           8.<minimum-connection-count>:最小連接數(shù)

             3.初始化連接池
          在proxool的包中有這樣一個(gè)類(lèi)org.logicalcobwebs.proxool.configuration.JAXPConfigurator可以接收xml配置文件解析并進(jìn)行初始化連接池。
          1 JAXPConfigurator.configure("src/java-test/org/logicalcobwebs/proxool/configuration/proxool.xml"false);
          2 // The false means non-validating

          一般使用包裝好的org.logicalcobwebs.proxool.configuration.ServletConfigurator類(lèi)進(jìn)行解析
          如果在tomcat啟動(dòng)的時(shí)候web.xml中加入ServletConfigurator類(lèi)的servlet配置并將此servlet的加載順序提前 那么此連接池在啟動(dòng)的時(shí)候就會(huì)創(chuàng)建好
          <servlet>
              
          <servlet-name>proxoolServletConfigurator</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>

          這樣以來(lái),就能夠在程序中應(yīng)用連接池進(jìn)行連接數(shù)據(jù)庫(kù)了。

              4.利用連接池連接數(shù)據(jù)庫(kù)
          使用下面的語(yǔ)句:
          1 connection = DriverManager.getConnection("proxool.your_own_name");

              5.利用proxool提供的web化監(jiān)測(cè)所配置的連接池
          proxool中提供了AdminServlet監(jiān)測(cè)連接池中的數(shù)據(jù)庫(kù),利用web.xml配置其servlet mapping 就可以通過(guò)瀏覽器進(jìn)行監(jiān)測(cè)了。
          同樣在web.xml中配置
          1 <servlet>
          2     <servlet-name>Admin</servlet-name>
          3     <servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
          4   </servlet>
          5   <servlet-mapping>
          6     <servlet-name>Admin</servlet-name>
          7     <url-pattern>/admin</url-pattern>
          8   </servlet-mapping>

          具體內(nèi)容很簡(jiǎn)單,不再詳細(xì)解釋了。





          posted on 2010-04-12 17:26 waynewan 閱讀(1012) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 遂川县| 汉沽区| 桃源县| 连云港市| 南宁市| 岐山县| 泽普县| 孟津县| 革吉县| 白山市| 察隅县| 江都市| 云浮市| 文山县| 城固县| 文成县| 正镶白旗| 南阳市| 柳江县| 兴国县| 张家港市| 武义县| 巴彦淖尔市| 志丹县| 巫山县| 佳木斯市| 卓资县| 太谷县| 莎车县| 龙山县| 方正县| 阿瓦提县| 蒲城县| 金门县| 广河县| 东光县| 芦山县| 大埔区| 商都县| 漳州市| 台州市|