Getting java.sql.SQLRecoverableException: No more data to read from socket when trying to get sequence next value from jdbc driver

Viewed 682

I am using oracle 19.0.0.0.0 and jdbc8 version 19.3.0 to connect to the database.

I am inserting data into a table. Before insert, fetching next sequence value for the serial number column. The code run fine for some time and throw below exception while getting next sequence value.

The same code is running on another server and connected to different database. It is working fine. This issue id only from a particular database.

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";

We tried running the same code to connect to another database and it is working fine.

0 Answers
Related