proxool数据库连接池的配置

来源:互联网 发布:win10 1709优化 编辑:程序博客网 时间:2024/05/20 16:01

proxool是一个开源的数据库连接池。官方网站是:http://proxool.sourceforge.net/

要使用这个连接池需要倒入两个Jar包,proxool-0.9.1.jar和proxool-cglib.jar。可以从官网下载最新的包。

 

这个连接池主要就是一个proxool.xml的配置文件,基本配置如下:

<?xml version="1.0" encoding="UTF-8"?> <something-else-entirely><proxool><alias>DBPool</alias><driver-url>jdbc:oracle:thin:@192.168.56.101:1521:orcl</driver-url><driver-class>oracle.jdbc.driver.OracleDriver</driver-class><driver-properties><property name="user" value="XXX"/><property name="password" value="XXX"/></driver-properties><!-- proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁 --><house-keeping-sleep-time>90000</house-keeping-sleep-time><!-- 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受 --><simultaneous-build-throttle>20</simultaneous-build-throttle><!-- 最少保持的空闲连接数 --><prototype-count>5</prototype-count><!-- 允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定 --><maximum-connection-count>50</maximum-connection-count><!-- 最小连接数 --><minimum-connection-count>10</minimum-connection-count> <!-- 一个活动连接的最长时间15分钟,单位毫秒 -->  <maximum-active-time>900000</maximum-active-time><!-- 一个连接的最长活动时间1小时,单位毫秒 -->  <maximum-connection-lifetime>3600000</maximum-connection-lifetime></proxool> </something-else-entirely>

 如果是使用JDBC连接,需要先加载配置文件:

// Initialize PostgreDB connect pool's environmenttry {JAXPConfigurator.configure(dbConfigPath, false);} catch (ProxoolException e) {sysLog.error("POSTGRE connect pool error" + e.getMessage());} catch (Exception e) {sysLog.error("Unkown error whern start POSTGRE connect pool" + e.getMessage());}

 然后在建立Connection的时候从这个配置文件中读取:

Connection connection = null;try {    connection = DriverManager.getConnection("proxool.DBPool");    ......

 注意,这里的“proxool.DBPool”是指的proxool.xml配置文件中“<alias>DBPool</alias>”一项。

其它的与普通JDBC没有什么区别,使用很方便。

 

如果是使用Hibernate,那么在Hibernate配置文件中指定连接池就可以了,代码无需改动

<property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property><!--hibernate.proxool.pool_alias这里就是用我们上面提到的连接池的别名--><property name="hibernate.proxool.pool_alias">DBPool</property><!--hibernate.proxool.xml是向Hibernate声明连接池的配置文件位置,可以用相对或绝对路径,用相对路径时要注意一定在要Path范围内!不然会抛出异常。--><property name="hibernate.proxool.xml">proxool.xml</property>
1 0