java数据库连接池proxool介绍及mysql8小时断开连接问题的说明

Proxool是一种Java数据库连接池技术。是sourceforge下的一个开源项目,这个项目提供一个健壮、易用的连接池
最为关键的是这个连接池提供监控的功能,方便易用,便于发现连接泄漏的情况。
目前是和DBCP以及C3P0一起,最为常见的三种JDBC连接池技术
日前,Hibernate官方宣布由于Bug太多不再支持DBCP,而推荐使用 Proxool或C3P0。
 
目前最新的版本为0.91版,可从官网下载最新版本http://proxool.sourceforge.net
把proxool.jar和proxool-cglib.jar放入你要配置的项目的lib目录
 
可以在proxool.xml 中配置,在web.xml中配置初始化servlet,在web容器加载的时候自动加载配置文件,然后applicationContext.xml中进行关联
 
 
如果是用的spring框架,在spring-config.xml中配置也可以。
 
在spring中的配置方法如下: beans 标签下增加:
<bean id="dataSource" class="org.logicalcobwebs.proxool.ProxoolDataSource">
  <property name="alias" value="proxoolDataSource" />
  <property name="driver" value="com.mysql.jdbc.Driver" />
  <property name="driverUrl" value="jdbc:mysql://127.0.0.1:3306/databasename" />
  <property name="user" value="root" />
  <property name="password" value="root" />
  <property name="maximumConnectionCount" value="40" />
  <property name="minimumConnectionCount" value="5" />
 </bean>
 
 
在应用中实时监控连接池的配置web.xml
<servlet>
<servlet-name>adminProxool</servlet-name>
<servlet-class>org.logicalcobwebs.proxool.admin.servlet.AdminServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>adminProxool</servlet-name>
<url-pattern>/admin/proxool</url-pattern>
</servlet-mapping>
访问http://localhost:8080/项目名称/admin/proxool即可看到页面
 
 
另外,mysql5.0以后,会出现8小时后自动断开连接的情况。因为我们使用了连接池的技术,这样在web系统初始化的时候,会自动创建很多歌连接放到
连接池中,但是这些连接只有8小时不使用的话会自动回收和做废,这样这个时候使用该连接进行数据库操作的时候,操作将无法执行。
解决方法如下:
在配置文件中增加:
<!-- 自动检查连接是否断掉开关 -->
<test-before-use>true</test-before-use>
<!-- 自动检查连接是否断的测试sql语句 -->
<house-keeping-test-sql>select now();</house-keeping-test-sql>

posted @ 2013-07-22 10:35  竹君子  阅读(1101)  评论(0编辑  收藏  举报