我在tomcat容器中使用带有JNDI的Apache DBCP来汇集到mysql数据库的连接。一切工作正常,但我看到的一个问题是,一旦pconnection被池化,它就永远不会被释放。因此,在负载高峰连接之后,它们将永远处于睡眠状态。它们是通过context.xml参数来缩小池的方法吗?下面是我的配置:
defaultAutoCommit="false"
defaultTransactionIsolation="REPEATABLE_READ"
auth="Container"
type="javax.sql.DataSource"
logAbandoned="true"
removeAbandoned="true"
removeAbandonedTimeout="300"
maxActive="-1"
initialSize="15"
maxIdle="10"
maxWait="10000"
username="user"
password="password"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/mydb"/>发布于 2009-07-06 05:30:20
尝试将minEvictableIdleTimeMillis设置为比其默认值1000*60*30更低的值。
发布于 2009-07-06 05:38:11
尝试使用c3p0连接池`~~
发布于 2009-07-06 05:44:21
在类似的情况下,我使用Tomcat的JMX适配器来调整连接池的设置。这可以用来增加和减少池的大小。因此,至少在生产环境中启用对servlet容器的JMX远程访问是一个好主意,只是为了有一些机会对异常操作情况做出反应。
https://stackoverflow.com/questions/1085505
复制相似问题