proxool数据库连接池的配置

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 environment
		try {
			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>
 

你可能感兴趣的:(oracle,Hibernate,xml,jdbc,prototype)