【发布时间】:2026-01-09 19:10:01
【问题描述】:
当我尝试连接 Hibernate 时出现错误。 代码创建 1000 个线程,每个线程打开一个连接。无论如何,代码很短,它们很快就关闭了连接。
我打印一个带有连接总数的计数器(打开一个时增加,关闭一个时减少..)。 当我得到大约 155 个连接时,我得到了那个错误。我试图将池连接(默认值为 150)增加到 500,但是在 180 个连接时我得到了同样的错误。
我做了另一个小测试,在我启动每个线程后我做了一个 Thread.sleep(10) 并且它工作,我不知道这就是为什么如果我说我的池大小为 500,它不工作。
for (int i=0; i<1000; i++) {
Thread.sleep(10); //it works with this modification because it gets time to finish some threads..
newThread = new WThread(params);
newThread.start();
}
池配置:
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="hibernate.connection.autocommit">false</prop>
<prop key="hibernate.show_sql">false</prop>
<prop key="hibernate.hbm2ddl.auto">validate</prop>
<prop key="hibernate.c3p0.min_size">2</prop>
<prop key="hibernate.c3p0.max_size">125</prop> --> increment this parameter it's not working.
<prop key="hibernate.c3p0.timeout">1800</prop>
<prop key="hibernate.c3p0.max_statements">500</prop>
</props>
我不知道它可能是什么,,,我的电脑内存?我不知道。
我得到的错误:
14/07/30 09:57:59 WARN spi.SqlExceptionHelper: SQL Error: 1040, SQLState: 08004
14/07/30 09:57:59 ERROR spi.SqlExceptionHelper: Data source rejected establishment of connection, message from server: "Too many connections"
...
14/07/30 09:57:59 INFO internal.DefaultLoadEventListener: HHH000327: Error performing load command : org.hibernate.exception.JDBCConnectionException: Could not open connection
14/07/30 09:57:59 WARN spi.SqlExceptionHelper: SQL Error: 1040, SQLState: 08004
【问题讨论】:
-
你遇到了什么错误?
-
我编辑时出现错误。
标签: mysql multithreading hibernate connection-pooling