【发布时间】:2013-07-14 04:45:03
【问题描述】:
我有一个使用 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 以检查是否是原因。它已暂时修复,但一段时间后我在尝试数据库连接时再次看到错误(当时没有任何其他数据库连接请求)。当我检查数据库的活动/非活动连接时,v$session 中只有 1 个来自机器的条目。然而我收到了这个错误。我不明白连接在哪里使用?
谁能告诉我为什么会发生这种情况。另外 C3P0 中的 maxPoolSize 代表什么?是那个可以签出的DB连接吗?
poolSize 也代表实际的 dbConnections 吗?
【问题讨论】:
标签: jdbc database-connection connection-pooling c3p0