在我的应用程序中,我使用连接到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)
字符串
对于恢复我需要重新启动应用程序,它是否可能恢复没有重新启动?谢谢.
1条答案
按热度按时间h7appiyu1#
以下可能是导致异常的可能性:
1.网络问题:这是数据库和应用程序服务器之间的网络,导致物理连接在一段时间后断开。这可能是由于在网络后面运行的防火墙被配置为在指定的时间段后杀死数据库连接。您可以考虑一种解决方法,只需重新配置应用程序服务器即可始终保持连接活动。对于Tomcat,您可以尝试在Tomcat配置文件(context.xml)中添加
validationQuery="select 'validationQuery' from dua
l1.正在重置与数据库服务器的连接,并且数据库驱动程序没有通知客户端。这种情况下的问题是Oracle驱动程序发现它与DBMS的套接字以某种方式(可能又是防火墙?)已被另一端关闭。您可以考虑将连接超时(在池中)设置为短于网络/数据库服务器超时的解决方案。