Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
java.sql.SQLException:Io异常:套接字读取超时vs关闭连接_Java_Sql_Oracle_Exception_Jdbc - Fatal编程技术网

java.sql.SQLException:Io异常:套接字读取超时vs关闭连接

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

我试图就以下两个连接到Oracle DBs的错误研究此问题:

  • 闭合连接
  • java.sql.SQLException
    :Io异常:套接字读取超时
  • 我的理解是:

  • 关闭连接:发生的原因可能是由于某种网络中断,或者DB由于某种“不活动”关闭了会话
  • java.sql.SQLException
    :Io异常:套接字读取超时:这种情况下,连接成功,但由于某种原因,套接字/数据为空,最终由于没有可用数据而超时
  • 是否可以在本地Oracle DB环境中复制上述错误?步骤是什么

    我感谢你花时间回复


    谢谢。

    我刚刚开始使用java.sql.*包,但以下是我的理解。关闭的连接是发生的错误,DB会话将关闭,但未进行任何错误处理,因此结束。使用java.SQException,您可以管理此错误(使用throws子句)并将其打印出来或执行其他错误处理方法

    下面是一个来自Oracle的关于异常以及如何处理异常的链接

    希望这有帮助


    您对闭合连接的理解是正确的。关闭连接的原因:外部设备(如防火墙、网络设备和远程数据库侦听器)可以在一段时间不活动后强制关闭网络连接

    即使在活动连接上,ReadTimeOut也会发生。如果查询或过程花费了大量时间,则会出现读取超时异常

    • 关闭连接:在数据库运行时关闭数据库侦听器
    • ReadTimedOut:添加睡眠过程10分钟以上,并从应用程序调用该过程
    Oracle DB env中套接字读取超时错误的复制:

  • setNetworkTimeout
    对于SQL//例如,将超时设置为120秒
  • 从java调用数据库过程,并在该过程中休眠超过setNetworkTimeout的时间

    dbms_lock.sleep(125); -- sleeps for 125 seconds
    

  • 由于125秒睡眠导致过程在120秒内不会返回,所以在上述场景中,java将抛出套接字读取超时。

    感谢您的输入。对于闭合连接错误,我试图找出DB闭合连接和网络干扰之间是否有区别,两者是否提供相同的错误,或者是否有区别。另外,我认为两者都是异常正确的
    java.sql.SQLRecoverableException:Closed Connection
    还有套接字超时异常,它的具体原因是什么,比如“网络”中断。@kart0624我不确定。尝试记录错误代码,看看它们是否不同。显然,它们发生的原因不同,但它们可能使用或可能不使用相同的错误代码。如果您不熟悉java,这里有一些关于登录java的信息。