gpt4 book ai didi

oracle - 'java.sql.SQLRecoverableException : IO Error: Operation interrupted' after updating the Oracle Driver to 12. 2.0.1.0

转载 作者:行者123 更新时间:2023-12-03 17:32:03 26 4
gpt4 key购买 nike

我最近将我们的 Oracle JDB 驱动程序更新为 12.2.0.1.0。

更新后,我们只是从 Oracle 驱动程序中得到一些我们还没有遇到过的错误,我还没有找到指出如何解决这个问题的讨论。

我们在公司开发的应用程序有一个调度程序来管理不同工作的执行。

作业可以打开与数据库的连接并对其执行一些 SQL 查询(然后当然关闭连接)。

作业并行执行(使用 fork 机制)。

当然,最多可以并行执行作业。

如果当前没有执行作业,则等待执行。

使用队列管理可以执行哪些作业的顺序。

在以下情况下会发生以下错误:调度程序并行执行允许同时运行的最大作业数,并且有作业等待执行。

在等待作业将要启动的那一刻(这意味着正在运行的作业已完成并且可以启动新作业),会发生以下错误:

Caused by: de.fact.first.process.data.ProcessDataException: 
java.sql.SQLRecoverableException: IO Error: Operation interrupted
at
JobDataFactoryImplJDBC.getByJobId(JobDataFactoryImplJDBC.java:210)
... 19 more
Caused by: java.sql.SQLRecoverableException: IO Error: Operation interrupted
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:761)
at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:904)
at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1082)
at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3780)
at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1343)
at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3822)
at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1165)
at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:83)
at org.apache.commons.dbcp2.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:83)
at de.fact.first.process.data.JobDataFactoryImplJDBC.getByJobId(JobDataFactoryImplJDBC.java:205)
... 19 more
Caused by: java.io.InterruptedIOException: Operation interrupted
at oracle.net.nt.TimeoutSocketChannel.handleInterrupt(TimeoutSocketChannel.java:311)
at oracle.net.nt.TimeoutSocketChannel.write(TimeoutSocketChannel.java:221)
at oracle.net.ns.NIOPacket.writeToSocketChannel(NIOPacket.java:211)
at oracle.net.ns.NIONSDataChannel.writeDataToSocketChannel(NIONSDataChannel.java:181)
at oracle.net.ns.NIONSDataChannel.writeDataToSocketChannel(NIONSDataChannel.java:132)
at oracle.jdbc.driver.T4CMAREngineNIO.prepareForReading(T4CMAREngineNIO.java:96)
at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:534)
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:485)
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:252)
at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:612)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:226)
at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:59)
at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:747)
... 28 more

我的第一个想法是可能应用程序超过了连接数,因此 Oracle 中断了连接。

这不是问题,因为我增加了进程(和 session )的数量以及distributed_lock_timeout。

即使调整了这些选项,问题仍然存在。

等待作业没有保持打开的连接。

我可以肯定地说,错误只发生在新的 Oracle 驱动程序中,这个问题在旧的驱动程序 (12.1.0.1.0) 中无法重现。

最佳答案

请更新依赖项并检查。

     <dependency>
<groupId>com.github.noraui</groupId>
<artifactId>ojdbc7</artifactId>
<version>12.1.0.2</version>
</dependency>

关于oracle - 'java.sql.SQLRecoverableException : IO Error: Operation interrupted' after updating the Oracle Driver to 12. 2.0.1.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52036548/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com