获取java.sql.SQLRecoverableException:尝试从jdbc驱动程序获取序列下一个值时,没有更多的数据可从套接字读取

获取java.sql.SQLRecoverableException:尝试从jdbc驱动程序获取序列下一个值时,没有更多的数据可从套接字读取,java,oracle,jdbc,Java,Oracle,Jdbc,我正在使用oracle 19.0.0.0和jdbc8版本连接到数据库 java.sql.SQLRecoverableException: No more data to read from socket at oracle.jdbc.driver.T4CMAREngineNIO.prepareForUnmarshall(T4CMAREngineNIO.java:784) at oracle.jdbc.driver.T4CMAREngineNIO.unmarshal

我正在使用oracle 19.0.0.0和jdbc8版本连接到数据库

java.sql.SQLRecoverableException: No more data to read from socket
        at oracle.jdbc.driver.T4CMAREngineNIO.prepareForUnmarshall(T4CMAREngineNIO.java:784)
        at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:429)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:407)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268)
        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:270)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:91)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:807)
        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:983)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3666)
        at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1426)
        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3713)
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1167)
        at com.agnity.clients.RouteLinkDbManager.getNextSequenceValue(RouteLinkDbManager.java:765)
        at com.agnity.clients.RouteLinkDbManager.addCPR(RouteLinkDbManager.java:256)
        at com.agnity.handlers.RecordHandler.processActionCPR(RecordHandler.java:280)
        at com.agnity.handlers.RecordHandler.processEventArray(RecordHandler.java:147)
        at com.agnity.handlers.RecordHandler.processRecords(RecordHandler.java:63)
        at com.agnity.routelink.SomosDownloadApplication.main(SomosDownloadApplication.java:135)

The query used: String sqlIdentifier = "select " + sequenceName + ".NEXTVAL from dual";
我正在将数据插入表中。在插入之前,获取序列号列的下一个序列值。代码可以正常运行一段时间,并在获取下一个序列值时抛出下面的异常

相同的代码正在另一台服务器上运行,并连接到不同的数据库。它工作得很好。此问题id仅来自特定数据库

java.sql.SQLRecoverableException: No more data to read from socket
        at oracle.jdbc.driver.T4CMAREngineNIO.prepareForUnmarshall(T4CMAREngineNIO.java:784)
        at oracle.jdbc.driver.T4CMAREngineNIO.unmarshalUB1(T4CMAREngineNIO.java:429)
        at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:407)
        at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:268)
        at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:655)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:270)
        at oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:91)
        at oracle.jdbc.driver.T4CPreparedStatement.executeForDescribe(T4CPreparedStatement.java:807)
        at oracle.jdbc.driver.OracleStatement.executeMaybeDescribe(OracleStatement.java:983)
        at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1168)
        at oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3666)
        at oracle.jdbc.driver.T4CPreparedStatement.executeInternal(T4CPreparedStatement.java:1426)
        at oracle.jdbc.driver.OraclePreparedStatement.executeQuery(OraclePreparedStatement.java:3713)
        at oracle.jdbc.driver.OraclePreparedStatementWrapper.executeQuery(OraclePreparedStatementWrapper.java:1167)
        at com.agnity.clients.RouteLinkDbManager.getNextSequenceValue(RouteLinkDbManager.java:765)
        at com.agnity.clients.RouteLinkDbManager.addCPR(RouteLinkDbManager.java:256)
        at com.agnity.handlers.RecordHandler.processActionCPR(RecordHandler.java:280)
        at com.agnity.handlers.RecordHandler.processEventArray(RecordHandler.java:147)
        at com.agnity.handlers.RecordHandler.processRecords(RecordHandler.java:63)
        at com.agnity.routelink.SomosDownloadApplication.main(SomosDownloadApplication.java:135)

The query used: String sqlIdentifier = "select " + sequenceName + ".NEXTVAL from dual";

我们尝试运行相同的代码连接到另一个数据库,但运行正常。

该错误向我表明数据库端存在问题。DBA是否查看了数据库中的各种日志(例如警报日志),以查看是否有任何关于发生了什么的线索?谢谢您的建议。我无法在转储文件中看到任何日志/警报。你能告诉我检查错误的确切文件吗?重启数据库在这里工作吗?我不知道你为什么要查看转储文件。警报日志将是第一个查找的位置,在中介绍了在何处查找。重新启动数据库可能会清除问题,但当然可能不会。