我有很多与我的Cloud SQL数据库的开放连接,我想知道为什么。我有几个JPA应用程序(在app引擎上运行)连接到它做一些基本的东西,但没有执行那么多的查询。
SHOW PROCESSLIST显示我目前有1727个连接,而且数量正在缓慢增加。他们中的大多数似乎都在睡觉。最古老的约7小时。
我在persistence.xml中配置了c3p0连接池,但似乎没有重用旧连接。
这是我的persistence.xml:
<persistence-unit name="de.gwtprime.jpa">
<properties>
<property name="javax.persistence.jdbc.driver"
value="com.mysql.jdbc.GoogleDriver" />
<property name="javax.persistence.jdbc.url"
value="jdbc:google:mysql://myapp:us-central1:myproject/mydb" />
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<!-- user and password only needed for second generation? -->
<property name="javax.persistence.jdbc.user" value="user" />
<property name="javax.persistence.jdbc.password" value="pw" />
<property name="hibernate.use_sql_comments" value="true" />
<property name="hibernate.hbm2ddl.auto" value="update" />
<!-- Set this to 0 otherwise you sometimes get errors -->
<property name="hibernate.connection.pool_size" value="5" />
<!-- Cache -->
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.EhCacheProvider" />
<property name="hibernate.cache.use_structured_entries" value="true" />
<property name="hibernate.cache.use_second_level_cache" value="true" />
<!-- Configuring Connection Pool -->
<property name="hibernate.c3p0.min_size" value="5" />
<property name="hibernate.c3p0.max_size" value="15" />
<property name="hibernate.c3p0.timeout" value="300" />
<property name="hibernate.c3p0.max_statements" value="50" />
<property name="hibernate.c3p0.idle_test_period" value="150" />
</properties>
</persistence-unit>
什么是解决/改善情况或进行调查的最佳方法?