说来真是惭愧,近一段时间做一个项目,采用的是HIBERNATE+PRXOOL连接数据库的技术,总是发现数据库的连接很快被占满了,而且查数据库的当前连接,居然发现连接数成递增,也就是说根本没有从连接池里面拿数据库的连接,为些没少折腾,在网上找的配置文件也都没有太大的出入,主要配置如下:
proxool.xml
<?xml version="1.0" encoding="utf-8"?>
<something-else-entirely>
<proxool>
<alias>dbpool</alias>
<driver-url>jdbc:mysql://192.168.0.66:3306/db?useUnicode=true&amp;amp;characterEncoding=utf-8</driver-url>
<driver-class>com.mysql.jdbc.Driver</driver-class>
<driver-properties>
<property name="user" value="db"/>
<property name="password" value="db"/>
</driver-properties>
<house-keeping-sleep-time>30</house-keeping-sleep-time>
<maximum-connection-count>1000</maximum-connection-count>
<minimum-connection-count>10</minimum-connection-count>
<simultaneous-build-throttle>100</simultaneous-build-throttle>
</proxool>
</something-else-entirely>
hibernate.cfg.xml
<property name="hibernate.proxool.pool_alias">dbpool</property>
<property name="hibernate.proxool.xml">proxool.xml</property>
<property name="hibernate.cglib.use_reflection_optimizer">true</property>
<property name="connection.provider_class">
org.hibernate.connection.ProxoolConnectionProvider
</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.connection.autocommit">true</property>
.......
这样配下来好象连接的技术一点都没有用,所以性能测试过不去,很快就去连接跑死了,可问题就是少了一个配置的属性文件
<property name="hibernate.proxool.pool_alias">dbpool</property>
<property name="hibernate.proxool.xml">proxool.xml</property>
<property name="hibernate.connection.release_mode">auto</property>少了这一句
<property name="hibernate.cglib.use_reflection_optimizer">true</property>
<property name="connection.provider_class">
org.hibernate.connection.ProxoolConnectionProvider
</property>
<property name="hibernate.show_sql">false</property>
<property name="hibernate.connection.autocommit">true</property>
按照这样的配置,一切都OK,唉,真是所知太少呀,写到这个地方,供有心之人参考参考,还是知识不扎实的帮故呀:(