Jdbc C3P0最大池大小已耗尽

Jdbc C3P0最大池大小已耗尽,jdbc,database-connection,connection-pooling,c3p0,Jdbc,Database Connection,Connection Pooling,C3p0,我有一个应用程序,它使用C3P0进行连接池。它已经工作了很长一段时间了,但是最近我在尝试访问数据库时遇到了以下异常 com.amazon.carbonado.FetchException: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResourcePool@1bd

我有一个应用程序,它使用C3P0进行连接池。它已经工作了很长一段时间了,但是最近我在尝试访问数据库时遇到了以下异常

com.amazon.carbonado.FetchException: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResourcePool@1bdc777 -- timeout at awaitAvailable()
通过谷歌搜索,我发现这是由于maxPoolSize已经耗尽。我将池大小从25增加到100,以检查这是否是原因。它是暂时修复的,但一段时间后,我在尝试db连接时再次看到错误,当时没有任何其他db连接请求。当我检查DB的活动/非活动连接时,v$session中只有一个来自机器的条目。然而,我收到了这个错误。我不明白在哪里使用连接

有人能告诉我为什么会这样吗。C3P0中的maxPoolSize代表什么?是可以签出的DB连接吗

池大小是否表示实际的数据库连接?

有几点。com.mchange.v2.resourcepool.TimeoutException表示您已设置签出超时,并且已超过该超时。这种情况通常发生,因为您已达到maxPoolSize,并且连接不会很快返回,但不一定返回。如果该值非常小,则在未最大化的池上获取连接可能会引发此问题

也就是说,这听起来很像是一个连接泄漏导致了一个耗尽的池。要进行验证,请取消设置checkoutTimeout并查看应用程序是否最终无限期挂起,而不是抛出异常。如果您正在泄漏连接,您希望

确保在管理连接时使用可靠的资源清理习惯用法-,单击“显示报价的其余部分”

使用和查找并修复连接泄漏。另见

祝你好运

有几件事。com.mchange.v2.resourcepool.TimeoutException表示您已设置签出超时,并且已超过该超时。这种情况通常发生,因为您已达到maxPoolSize,并且连接不会很快返回,但不一定返回。如果该值非常小,则在未最大化的池上获取连接可能会引发此问题

也就是说,这听起来很像是一个连接泄漏导致了一个耗尽的池。要进行验证,请取消设置checkoutTimeout并查看应用程序是否最终无限期挂起,而不是抛出异常。如果您正在泄漏连接,您希望

确保在管理连接时使用可靠的资源清理习惯用法-,单击“显示报价的其余部分”

使用和查找并修复连接泄漏。另见

祝你好运