2

我正在使用 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>

知道为什么吗?

4

2 回答 2

2

数据库服务器端的连接数也受到限制。据我记得,MySQL 默认的最大连接数是 100。

有关 MySQL,另请参见http://www.electrictoolbox.com/update-max-connections-mysql/

于 2013-01-30T09:26:09.233 回答
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

于 2013-01-30T09:30:56.287 回答