proxool数据源的配置

系统 1535 0

自己以前做程序都是自己写连接池,那个时候项目大,环境各异,为了便于实施,总是由自己进行连接池的管理,等到自己想做一些小东西的时候,才发现这个连接池成了一个专用的东西,和系统做了太多的绑定,只能找连接池用,用过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、应用开发:
      在实际的应用中,我们可能需要更多的功能,比如监控功能不够强大,权限不好控制,我们希望能够编写出更强大的功能,比如杀死一些大的查询语句等,记录各种查询语句占用的时间,这就需要对开发接口进行进一步的研究了。

<!-- <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"> <rdf:Description rdf:about="http://www.blogjava.net/flyffa/archive/2006/11/02/78639.html" dc:identifier="http://www.blogjava.net/flyffa/archive/2006/11/02/78639.html" dc:title="Proxool连接池的简单配置" trackback:ping="http://www.blogjava.net/flyffa/services/trackbacks/78639.aspx" /> </rdf:RDF> -->

<script type="text/javascript"></script>

proxool数据源的配置


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论