【问题标题】:java.sql.SQLRecoverableException: No more data to read from socket when using a connection pool?java.sql.SQLRecoverableException:使用连接池时不再从套接字读取数据?
【发布时间】:2015-03-10 00:43:06
【问题描述】:

当我使用连接池连接到数据库时,出现此异常。

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

【问题讨论】:

    标签: java jdbc connection-pooling


    【解决方案1】:

    只要涉及连接池,就可能出现此问题。原因如下。

    原因:

    • 假设在您的应用程序中配置了一个连接池。你要求 5 个连接对象。
    • 您的连接池通常由 Tomcat、Spring 或 CQ5 等容器处理(在我的情况下)
    • 现在您让应用程序闲置一段时间,但容器和连接池仍处于活动状态
    • 现在神奇的技巧,数据库服务器按计划重新启动。
    • 这会使应用服务器的连接池中的活动/活动连接对象损坏
    • 所以你在下一刻进入,突然在前段时间正常工作时出现这些错误。

    解决方案:

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

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

    参考Link

    【讨论】:

      猜你喜欢
      • 2012-07-16
      • 2021-01-23
      • 1970-01-01
      • 1970-01-01
      • 2016-09-10
      • 1970-01-01
      • 2014-06-07
      • 1970-01-01
      相关资源
      最近更新 更多