【问题标题】:Why database connection getting fail after few time [closed]为什么数据库连接在几次后失败[关闭]
【发布时间】:2012-11-16 17:42:39
【问题描述】:

我正在使用 MYSQL 数据库和基本的 JDBC 连接池来连接数据库。应用程序部署在 tomcat 服务器中。几次操作后,数据库连接为空。

谁能告诉我这是什么原因?

【问题讨论】:

  • “因为”。您是否希望我们能够猜测问题是什么,因为您基本上没有给我们任何有用的代码或描述?基本上:“它坏了,修复它!”
  • 另外请贴出实际错误
  • 原因可能是信号 C90。

标签: java mysql jdbc database-connection


【解决方案1】:

这可能有几个不同的原因:

  1. 当您使用完 Connection 资源后,不调用 close()。这可能会导致您的连接池在所有Connections 被分发且未关闭后耗尽。
  2. 不止一次在您的 Connection 资源上调用 close()。关闭 Connection 会将其返回到池中,以便另一个线程可以获取它。如果您再次调用close(),您现在已经为另一个线程关闭了它。
  3. 您的代码实际上是在某处将您的 Connection 实例设置为 null
  4. 您让Connection 资源处于打开状态且闲置时间过长,导致您超时。如果您的代码在查询之间有一些长时间运行的操作,请考虑关闭 Connection 并在查询之间获取一个新的。
  5. 数据库服务器由于某种原因关闭了您的连接,而您的连接池对此一无所知。为了缓解这种情况,您可以将连接池配置为在借用时进行测试。这基本上会在连接上发出一个测试查询,以确保它在将其交给您的应用程序之前是活动的。注意:那里有一些开销。

【讨论】:

    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 2021-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多