最近做的项目一开始都是用的DBCP连接池,后来发现在有防火墙(Juniper)的情况下,外部网络又能会出现自动掉线的情况,session的销毁不受控制等等,详细检查了所有的配置相关文件后还是没办法,就想起用C3P0试试,大体配置如下:
<Resource name="jdbc/MySQL" auth="Container" type="com.mchange.v2.c3p0.ComboPooledDataSource"
maxPoolSize="20" minPoolSize="5" acquireIncrement="1"
user="test" password="test" driverClass="com.mysql.jdbc.Driver"
factory="org.apache.naming.factory.BeanFactory"
preferredTestQuery="select 1" checkoutTimeout="100000" idleConnectionTestPeriod="100"
jdbcUrl="jdbc:mysql://localhost:3306/test?autoReconnect=true&autoReconnectForPools=true&useUnicode=true&characterEncoding=utf-8"/>
之后再也没有出现过问题,只是C3P0好像很久都没有更新了,不知道为什么。