为什么数据库连接在几次后失败

时间:2012-11-16 17:42:40

标签: java mysql jdbc database-connection

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

任何人都可以告诉我原因吗?

1 个答案:

答案 0 :(得分:0)

这可能由于以下几个原因而发生:

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