Proxool连接池的简单配置

news/2024/7/16 6:53:11 标签: 配置管理, Servlet, MySQL, Web, XML
 自己以前做程序都是自己写连接池,那个时候项目大,环境各异,为了便于实施,总是由自己进行连接池的管理,等到自己想做一些小东西的时候,才发现这个连接池成了一个专用的东西,和系统做了太多的绑定,只能找连接池用,用过resin自带的连接池,再用tomcat连接池的时候就很不爽,没有监控的功能,在网上选来选去,最后选择了Proxool。

      Proxool连接池是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池,最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。开源项目地址是:
http://proxool.sourceforge.net/

配置连接池比较的简单:
1、将下载的包解开,从包中的lib目录下将proxool-xxx.jar(xxx随着不同的版本号变化)加入你的工程中。
2、配置数据源:
      在web-info下建立文件:proxool.xml,文件内容如下:

xml 代码
 
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <something-else-entirely>  
  3.   <proxool>  
  4.     <alias>Develop</alias>  
  5.     <driver-url>jdbc:mysql://localhost/kuanxue</driver-url>  
  6.     <driver-class>com.mysql.jdbc.Driver</driver-class>  
  7.     <driver-properties>  
  8.       <property name="user" value="root"/>  
  9.       <property name="password" value=""/>  
  10.       <property name="useUnicode" value="true"/>  
  11.       <property name="characterEncoding" value="GBK"/>  
  12.     </driver-properties>  
  13.     <maximum-connection-count>500</maximum-connection-count>  
  14.     <house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>  
  15.   </proxool>  
  16.  </something-else-entirely>  

3、配置web.xml
在web.xml中增加:

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,其实如果不想监控的话,可以不配-->  
java 代码
 
public Connection getConnection() {           try{               Class.forName("org.logicalcobwebs.proxool.ProxoolDriver");               return DriverManager.getConnection("proxool.Develop");           }catch(Exception ex){               ex.printStackTrace();           }           return null;       }  
   <servlet-mapping>       <servlet-name>dbpoolAdmin</servlet-name>       <url-pattern>/dbpool</url-pattern>     </servlet-mapping>  

4、在程序中调用
一般我将获取connection的行为封装为一个工厂模式,便于多种情况的切换,以下是其中proxool数据源的getConnection方法的实现:

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

5、应用开发:
      在实际的应用中,我们可能需要更多的功能,比如监控功能不够强大,权限不好控制,我们希望能够编写出更强大的功能,比如杀死一些大的查询语句等,记录各种查询语句占用的时间,这就需要对开发接口进行进一步的研究了。



http://www.niftyadmin.cn/n/675005.html

相关文章

java 内存异常上升_JVM堆外内存异常增长的解决过程

其实有了MAT这类工具&#xff0c;一般堆内内存基本都能借助工具分析出大概问题所在&#xff0c;但堆外内存有时就不能直观地发现问题了&#xff0c;从解决过几次线上问题的现象总结&#xff0c;堆外内存过高80%都是这两种因素引起&#xff1a;若metaspace正常&#xff0c;有可能…

Sl beta4发布了

我想要的功能基本都有了&#xff0c;打印&#xff0c;com&#xff0c;摄像等等。 替代winform没有问题&#xff0c;终于web和win可以走在一起了&#xff0c;接下来用点时间用替换现有的部分模块。 HomeAbout MeContactArchiveshttp://twitter.com/timheuerSubscribe< Two Si…

TOMCAT5 连接池配置- -

1. 编辑%TOMCAT_HOME%\conf\tomcat-users.xml在<tomcat-users></tomcat-users>中添加<role rolename"manager"><role rolename"admin"><user roles"admin,manager" password"admin" username"admin&q…

java并发编程艺术 百科_并发编程的艺术——Java并发编程基础

1.什么是线程现代操作系统在运行一个程序时&#xff0c;会创建一个进程。CPU调度的最小单元是线程&#xff0c;一个进程可以创建多个线程&#xff0c;它们拥有各自的计数器&#xff0c;堆栈和局部变量等属性&#xff0c;并能访问共享的内存变量&#xff0c;CPU在这些线程上高度…

邮票面值设计java_程序设计比赛题.doc

程序设计比赛试题最少钱币数&#xff1a;【问题描述】这是一个古老而又经典的问题。用给定的几种钱币凑成某个钱数&#xff0c;一般而言有多种方式。例如&#xff1a;给定了6种钱币面值为2、5、10、20、50、100&#xff0c;用来凑15元&#xff0c;可以用5个2元、1个5元&#xf…

MSsql每天自动备份自动清除日志的操作方法

1、每日自动备份 打开企业管理器&#xff0c;进入“管理”-“数据库维护计划”&#xff0c;在右侧窗口点击右键&#xff0c;选择“新建维护计划”&#xff0c;启动“数据库维护计划向导”;点击“下一步” 选择需要维护的数据库&#xff0c;维护特性数据库时&#xff0c;选择最后…

软件架构思想

记得我曾服务于一家软件公司任项目主管(项目总监)时&#xff0c;刚进公司时由于开发工作处于无序状态(也就是CMMI中定义的0级)&#xff0c;所有项目几乎均是一再延期、质量低下。于是我建议并得到公司老板的大力支持下&#xff0c;根据公司人员的当前能力并稍高一点要求&#x…

java操作系统进程调度管理_操作系统实验进程调度和内存管理 java语言版本.docx_蚂蚁文库...

操作系统实验 进程调度和内存管理 java语言版本.docx 源代码第一个类DIVDTOPUBLICCLASSDIVDTO{PRIVATEINTDIVBASEPRIVATEINTLENGTHPRIVATEINTDIVFLAGPUBLICDIVDTOINTDIVBASE,INTLENGTH,INTDIVFLAG{THISDIVBASEDIVBASETHISDIVFLAGDIVFLAGTHISLENGTHLENGTH}PUBLICDIVDTO{}PUBLICV…