java.sql.SQLException:Io异常:套接字读取超时vs关闭连接
我试图就以下两个连接到Oracle DBs的错误研究此问题:java.sql.SQLException:Io异常:套接字读取超时vs关闭连接,java,sql,oracle,exception,jdbc,Java,Sql,Oracle,Exception,Jdbc,我试图就以下两个连接到Oracle DBs的错误研究此问题: 闭合连接 java.sql.SQLException:Io异常:套接字读取超时 我的理解是: 关闭连接:发生的原因可能是由于某种网络中断,或者DB由于某种“不活动”关闭了会话 java.sql.SQLException:Io异常:套接字读取超时:这种情况下,连接成功,但由于某种原因,套接字/数据为空,最终由于没有可用数据而超时 是否可以在本地Oracle DB环境中复制上述错误?步骤是什么 我感谢你花时间回复 谢谢。我刚刚开始使用ja
java.sql.SQLException
:Io异常:套接字读取超时java.sql.SQLException
:Io异常:套接字读取超时:这种情况下,连接成功,但由于某种原因,套接字/数据为空,最终由于没有可用数据而超时谢谢。我刚刚开始使用java.sql.*包,但以下是我的理解。关闭的连接是发生的错误,DB会话将关闭,但未进行任何错误处理,因此结束。使用java.SQException,您可以管理此错误(使用throws子句)并将其打印出来或执行其他错误处理方法 下面是一个来自Oracle的关于异常以及如何处理异常的链接 希望这有帮助
您对闭合连接的理解是正确的。关闭连接的原因:外部设备(如防火墙、网络设备和远程数据库侦听器)可以在一段时间不活动后强制关闭网络连接 即使在活动连接上,ReadTimeOut也会发生。如果查询或过程花费了大量时间,则会出现读取超时异常
- 关闭连接:在数据库运行时关闭数据库侦听器
- ReadTimedOut:添加睡眠过程10分钟以上,并从应用程序调用该过程
setNetworkTimeout
对于SQL//例如,将超时设置为120秒dbms_lock.sleep(125); -- sleeps for 125 seconds
由于125秒睡眠导致过程在120秒内不会返回,所以在上述场景中,java将抛出套接字读取超时。感谢您的输入。对于闭合连接错误,我试图找出DB闭合连接和网络干扰之间是否有区别,两者是否提供相同的错误,或者是否有区别。另外,我认为两者都是异常正确的
java.sql.SQLRecoverableException:Closed Connection
还有套接字超时异常,它的具体原因是什么,比如“网络”中断。@kart0624我不确定。尝试记录错误代码,看看它们是否不同。显然,它们发生的原因不同,但它们可能使用或可能不使用相同的错误代码。如果您不熟悉java,这里有一些关于登录java的信息。