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

java.sql.SQLException:Io异常:断开的管道如何在不重新启动的情况下恢复?,java,oracle,connection,recover,disconnected,Java,Oracle,Connection,Recover,Disconnected,在我的应用程序中,我使用与Oracle的连接,当连接丢失并尝试重新连接时,我收到异常: java.sql.SQLException: Io exception: Broken pipe at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:124) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.jav

在我的应用程序中,我使用与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)
对于恢复,我需要重新启动应用程序,是否可以在不重新启动的情况下恢复?
谢谢。

以下可能是导致异常的可能性:

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)
  • 网络问题:即数据库和应用程序服务器之间的网络导致物理连接在一段时间后断开。这可能是由于网络后面运行的防火墙配置为在指定时间段后终止db连接。您可以考虑通过重新配置应用程序服务器来保持连接始终保持工作状态。对于Tomcat,您可以尝试在Tomcat数据源conf文件(context.xml)中添加来自dua的
    validationQuery=“select'validationQuery”
    l


  • <> LI> < P>数据库服务器的连接正在被重置,客户端没有被数据库驱动程序通知。在这种情况下,问题是Oracle驱动程序发现它的DBMS的Socket不知何故(防火墙可能,也许?)已经被另一端关闭。您可以考虑设置连接超时(池中)。短于网络/DB服务器超时作为解决方案


    “正在重置与数据库服务器的连接,并且数据库驱动程序未通知客户端。”那么,将异常称为什么?