proxool连接池配置

(1) proxool.xml

<?xml version="1.0" encoding="UTF-8"?>
<!-- the proxool configuration can be embedded within your own application's.
Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<alias>connPool</alias>
<driver-url>jdbc:oracle:thin:logcd/logcd@195.2.199.9:1521:dolphin</driver-url>
<driver-class>oracle.jdbc.driver.OracleDriver</driver-class>
<driver-properties>
<property name="user" value="logcd"/>
<property name="password" value="logcd"/>
</driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<maximum-new-connections>150</maximum-new-connections>
<prototype-count>5</prototype-count>
<maximum-connection-count>20</maximum-connection-count>
<minimum-connection-count>15</minimum-connection-count>
</proxool>
</something-else-entirely>

配置说明:
alias -->数据库连接别名(程序中需要使用的名称)
driver-url -->数据库驱动
driver-class -->驱动程序类
driver-properties -->数据库的用户和密码
minimum-connection-count -->最小连接数量,建议设置0以上,保证第一次连接时间
maximum-connection-count -->最大连接数量,如果超过最大连接数量则会抛出异常。连接数设置过多,服务器CPU和内存性能消耗很大。
simultaneous-build-throttle -->同时最大连接数
prototype-count -->一次产生连接的数量。 但不能超过最大连接数。
maximum-active-time -->连接最大活动时间 默认5分钟
maximum-connection-lifetime -->连接最大生命时间 默认4小时

自动重连?:

<house-keeping-test-sql>select CURRENT_DATE</house-keeping-test-sql>


(2) 在hibernate中使用proxool,hibernate.cfg.xml中的数据库配置
<?xmlversion="1.0"encoding="UTF-8"?>
<!-- the proxool configuration can be embedded within your own application's.Anything outside the "proxool" tag is ignored. -->
<something-else-entirely>
<proxool>
<alias>DBPool</alias>
<driver-url>jdbc:mysql://localhost:3306/工程名?useUnicode=true&characterEncoding=UTF-8</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<propertyname="user"value="*** "/>
<propertyname="password"value="*** "/>
</driver-properties>
<house-keeping-sleep-time>90000</house-keeping-sleep-time>
<maximum-new-connections>20</maximum-new-connections>
<prototype-count>5</prototype-count>
<maximum-connection-count>100</maximum-connection-count>
<minimum-connection-count>10</minimum-connection-count>
</proxool>
</something-else-entirely>

其中有几个地方需要注意:

1)<alias>DBPool</alias>这个是给连接池取一个别名,在hibernate配置文件中将引用这个别名。

2)<driver-url>jdbc:mysql://localhost:3306/工程名?useUnicode=true&characterEncoding=UTF-8</driver-url>

这个是驱动的路径,我们的项目采用了mysql,使用其余数据库需要更改成对应的。还有需要注意的是工程名要以数据库名为准。

3)<driver-class>om.mysql.jdbc.Driver</driver-class>

这个是数据库驱动类,不同的数据库采用不同的驱动类,即使采用同一种数据库也有多种驱动类,所以一定要选取准确。

4) <driver-properties>
<propertyname="user"value="*** "/>
<propertyname="password"value="*** "/>
</driver-properties>

这个显示数据库的用户名和密码。

5)<house-keeping-sleep-time>90000</house-keeping-sleep-time>

这个显示proxool自动侦察各个连接状态的时间间隔(毫秒),侦察到空闲的连接就马上回收,超时的销毁

6)<maximum-new-connections>20</maximum-new-connections>

这个 指因未有空闲连接可以分配而在队列中等候的最大请求数,超过这个请求数的用户连接就不会被接受

7)<prototype-count>5</prototype-count>

这个显示最少保持的空闲连接数

8)<maximum-connection-count>100</maximum-connection-count>

这个显示允许最大连接数,超过了这个连接,再有请求时,就排在队列中等候,最大的等待请求数由maximum-new-connections决定

9)<minimum-connection-count>10</minimum-connection-count>

这个显示最小连接数

最后需要注意的是不要在这个配置文件里面写(中文)注释,英文没事,不然会报如下的错误:

org.hibernate.HibernateException: Proxool Provider unable to load JAXP configurator file: Proxool.xml

Caused by: org.logicalcobwebs.proxool.ProxoolException: Parsing failed.

Caused by: org.xml.sax.SAXParseException: The string "--" is not permitted within comments.

接下来就是在hibernate.cfg.xml中改配置即可

<?xmlversion='1.0'encoding='UTF-8'?>
<!DOCTYPEhibernate-configurationPUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</property>
<property name="hibernate.proxool.pool_alias">DBPool</property>
<property name="hibernate.proxool.xml">Proxool.xml</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<mappin gresource="hibernate.cfg.xml"/>

这里放Hibernate的映射文件

</session-factory>

</hibernate-configuration>


(3) 在spring中使用proxool

<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource" destroy-method="close">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="driverUrl" value="jdbc:mysql://localhost/activemq?user=root&password=root" /><!--必须在这里配置用户名/密码,下面的貌似没用-->
<property name="user" value="root" />
<property name="password" value="root" />
<property name="alias" value="jms1" />
<property name="houseKeepingSleepTime" value="90000" />
<property name="prototypeCount" value="5" />
<property name="maximumConnectionCount" value="100" />
<property name="minimumConnectionCount" value="10" />
</bean>

(4) spring + hibernate + proxool

bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.Oracle9Dialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.cglib.use_reflection_optimizer">true</prop>
<prop key="connection.provider_class">org.hibernate.connection.ProxoolConnectionProvider</prop>
<prop key="hibernate.proxool.xml">proxool.xml</prop>
<prop key="hibernate.proxool.pool_alias">DBPool</prop>

</props>
</property>
.............

</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值