我正在使用 c3p0 来管理与 MySQL 的数据库连接。问题是某些连接会永远保持。我有 1000 个连接的限制,但由于某种未知原因,有 1200 个打开的连接。为了调查它,我在 tomcat 服务器 shell 中执行以下命令:
netstat -n |grep 3306|grep ESTABILISHED|wc -l
它返回 1200
这是c3p0的配置context.xml
<Resource name="jdbc/xxxx" auth="Container"
user="xxxxxx"
password="xxxxx"
driverClass="com.mysql.jdbc.Driver"
jdbcUrl ="jdbc:mysql://xxxx:3306/xxx"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
maxPoolSize="1000"
minPoolSize="200"
numHelperThreads="10"
acquireIncrement="50"
maxStatementsPerConnection="0"
idleConnectionTestPeriod="200"
maxIdleTime = "1000"
maxIdleTimeExcessConnections = "180"
maxStatements="200"
unreturnedConnectionTimeout="10"
debugUnreturnedConnectionStackTraces="true"
/>
如果池最大大小为 1000,如何建立 1200 个连接?我的 MySQL 服务器配置为
interactive_timeout 28800
wait_timeout 1300
OBS:我没有在这个应用程序中使用休眠(只是在几个类中)。大多数连接都是通过纯 JDBC 代码建立的。