c3p0没有打开足够的连接

时间:2013-01-30 09:22:19

标签: java mysql hibernate jdbc c3p0

我正在使用Hibernate 3.4.0 GA和c3p0 0.9.0.4

maxPoolSize属性设置为2000,但创建的最大JDBC连接数约为100,110(即使程序需要更多连接)。

这是我的配置:
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver" />
<property name="jdbcUrl" value="${jdbc.url}" />
<property name="user" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
<property name="maxPoolSize" value="2000"/>
<property name="initialPoolSize" value="50"/>
<property name="minPoolSize" value="50"/>
<property name="acquireIncrement" value="3"/>
<property name="maxIdleTime" value="60"/>
</bean>

知道为什么吗?

2 个答案:

答案 0 :(得分:2)

数据库服务器端的连接数也受到限制。据我所知,对于MySQL,默认的最大连接数为100。

另请参阅http://www.electrictoolbox.com/update-max-connections-mysql/了解MySQL。

答案 1 :(得分:1)

我认为你需要在Hibernate配置中设置连接池参数,因为c3p0.properties中的那些特定参数将被Hibernate覆盖。

尝试将以下内容添加到Hibernate属性配置中:

<property name="c3p0.acquire_increment">3</property>  
<property name="c3p0.max_size">2000</property> 
<property name="c3p0.min_size">50</property>

您可以参考以下链接获取更多信息:https://community.jboss.org/wiki/HowToConfigureTheC3P0ConnectionPool