java.sql.SQLException:Io异常:断开的管道如何恢复而不重新启动?

在我的应用程序中,我使用连接到Oracle,当连接丢失,并尝试重新连接时,我收到异常:

java.sql.SQLException: Io exception: Broken pipe
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:161)
    at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:273)
    at oracle.jdbc.driver.T4CStatement.fetch(T4CStatement.java:540)
    at oracle.jdbc.driver.OracleResultSetImpl.close_or_fetch_from_next(OracleResultSetImpl.java:264)
    at oracle.jdbc.driver.OracleResultSetImpl.next(OracleResultSetImpl.java:196)

为了恢复,我需要重新启动应用程序,是否可以恢复而不重新启动? 谢谢。


以下可能是可能导致例外的可能性:

  • 网络问题:这是数据库和应用程序服务器之间的网络,导致物理连接在一段时间后被丢弃。 这可能是由于防火墙在网络后面运行,该网络被配置为在指定的时间段后终止数据库连接。 您可以考虑采取一种解决方法,只需重新配置应用程序服务器即可始终保持连接正常。 对于Tomcat,您可以尝试validationQuery="select 'validationQuery' from dua Tomcat数据源配置文件(context.xml)中的validationQuery="select 'validationQuery' from dua l中添加validationQuery="select 'validationQuery' from dua

  • 到数据库服务器的连接正在重置,客户端不会被数据库驱动程序通知。 在这种情况下,问题在于Oracle驱动程序发现它是以某种方式连接到DBMS的套接字(防火墙再次,也许是?)已被另一端关闭。 您可以考虑将连接超时(在池中)设置为比网络/数据库服务器超时短的解决方案。

  • 链接地址: http://www.djcxy.com/p/10587.html

    上一篇: java.sql.SQLException: Io exception: Broken pipe how to recover without restart?

    下一篇: Beveling a path/shape in Core Graphics