【问题标题】:Connection leaks causing TimeoutException when using C3P0使用 C3P0 时连接泄漏导致 TimeoutException
【发布时间】:2014-08-03 10:30:20
【问题描述】:

我使用的是 Amazon 的开源对象关系映射器 Carbonado。 Carbonado 就像休眠。我的服务包含一个使用 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,如果你有一个连接泄漏,应用程序只会挂起。可能没有任何问题,而您只是将 checkoutTimeout 设置为过低的值。请提供配置信息。
  • 重启服务器后,总能成功调用8次方法。但是调用 8 次后,该方法总是返回相同的错误。
  • 可能是连接泄漏,如果 maxPoolSize 为 8。如果是这样,您必须修复它 - 确保打开的连接得到 close()ed。
  • @Steve Waldman 感谢您的帮助。问题是由于光标未关闭造成的。

标签: hibernate jdbc database-connection connection-pooling c3p0


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2011-02-18
    • 1970-01-01
    • 2021-03-12
    • 2012-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-11
    • 2016-07-03
    相关资源
    最近更新 更多