hibernate 无法获取JDBC连接,但只有10%的可用连接正在使用

fhity93d  于 2023-11-21  发布在  其他
关注(0)|答案(1)|浏览(174)

这是我得到的例外


的数据
这是我在c3p0中使用的配置

<property name="acquireIncrement">5</property>
        <property name="preferredTestQuery">SELECT 1</property>
        <property name="checkoutTimeout">2000</property>
        <property name="idleConnectionTestPeriod">30</property>
        <property name="initialPoolSize">5</property>
        <property name="maxIdleTime">18000</property>
        <property name="maxPoolSize">500</property>
        <property name="minPoolSize">5</property>
        <property name="maxStatements">20</property>
        <property name="testConnectionOnCheckin">true</property>
        <property name="unreturnedConnectionTimeout">60</property>
        <property name="debugUnreturnedConnectionStackTraces">true</property>

字符串
我当前连接池情况的屏幕截图如下:


你可以看到在图片中只有27个连接目前存在于连接池中,而我的maxPoolSize是500,我仍然无法建立更多的连接。
有人能在我得到这个异常的时候弄清楚吗?

xesrikrc

xesrikrc1#

将 checkout 时间值增加到更高的值,如10000(10秒)或30000根据设计,c3 p0池管理器将尝试首先建立到DB的连接,然后将这些连接对象添加到池中,直到它达到更高的值(例如:-30至200)只有在此之后,才会向应用程序中等待的http线程提供给予DB连接。同时,如果http线程获取连接对象的时间超过2秒,然后它将抛出超时错误-“客户端尝试 checkout 连接已超时”并返回。

相关问题