java.sql.SQLRecoverableException:使用连接池时,没有更多数据要从套接字读取?

时间:2015-01-12 09:29:12

标签: java jdbc connection-pooling

当我使用连接池连接到数据库时,我得到了这个例外。

然后我尝试使用基本的Class.forName()连接到数据库;和DriverManager方法我能够这样做..为什么会发生这种情况?

1 个答案:

答案 0 :(得分:2)

如果涉及连接池,可能会出现此问题。原因如下。

原因:

  • 在您的应用程序中说您已配置连接池。你要求一个5连接对象。
  • 您的连接池通常由Tomcat,Spring或CQ5等容器处理(在我的情况下)
  • 现在您将应用程序保持空闲一段时间,但容器和连接池仍处于活动状态
  • 现在是魔术,数据库服务器按计划重新启动。
  • 这会使应用程序服务器连接池中的活动/活动连接对象池破碎
  • 所以你来到下一刻,突然间你在前一段时间工作正常时会遇到这些错误。

解决方案:

  • 您可以重置连接池 - 这是最佳选择。这将删除驻留在池中的当前已断开的连接,并强制创建一个新的连接池,其中包含新的连接对象。

  • 您可以重新启动应用程序服务器。不推荐。(您不能继续在生产中重新启动应用程序服务器)

参考Link