Hibernate 使用C3P0时,连接泄漏导致超时异常

Hibernate 使用C3P0时,连接泄漏导致超时异常,hibernate,jdbc,database-connection,connection-pooling,c3p0,Hibernate,Jdbc,Database Connection,Connection Pooling,C3p0,我使用的是Carbonado,它是Amazon的开源对象关系映射器。卡博纳多就像冬眠。我的服务包含一个使用Carbonado访问数据库的公共API方法。此方法在最初的几个调用中运行良好。但是,如果我反复调用此方法,那么 获取以下错误: com.amazon.carbonado.FetchException: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a res

我使用的是Carbonado,它是Amazon的开源对象关系映射器。卡博纳多就像冬眠。我的服务包含一个使用Carbonado访问数据库的公共API方法。此方法在最初的几个调用中运行良好。但是,如果我反复调用此方法,那么 获取以下错误:

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
请帮我纠正这个错误


谢谢

问题是由于光标未关闭造成的。

如标题所示,是否存在连接泄漏?在这种情况下,请确保公共API方法可靠地关闭它打开的连接。否则,您可能应该提供更多信息。您可以通过将c3p0配置参数checkoutTimeout设置为零(这将是它的默认值),使看到的特定错误消失。如果没有签出超时,如果存在连接泄漏,应用程序就会挂起。这可能是因为没有任何问题,您只是将checkoutTimeout设置为太低的值。请提供配置信息。重新启动服务器后,我始终可以成功调用该方法8次。但是,调用8次后,该方法始终返回相同的错误。如果maxPoolSize为8,则可能会出现连接泄漏。如果是这样的话,你必须修复它——确保打开的连接得到关闭()。@Steve Waldman谢谢你的帮助。该问题是由光标未关闭引起的。