When you are using an Oracle JDBC connection to an analysis file which is migrated from a different version of Spotfire, you may come across issues when loading on-demand data from the same DXP which worked fine in the previous version of Spotfire.
You may see the below error messages:
ERROR 2018-12-11T04:58:56,190-0500 [*pool-13-thread-6, USER_NAME, #785569, #3311168*] im.ds.SQLUtilities: Could not rollback transaction
java.sql.SQLException: Protocol violation: [ 0, ]
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:669) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.jdbc.driver.T4C7Ocommoncall.doOROLLBACK(T4C7Ocommoncall.java:66) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:906) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:4539) ~[ojdbc7.jar:12.1.0.1.0]
at com.spotfire.server.util.sql.PooledConnection.rollback(PooledConnection.java:534) ~[server.jar:?]
at com.spotfire.ws.im.ds.sql.SQLUtilities.rollback(SQLUtilities.java:262) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLDataSource.closeConnection(SQLDataSource.java:445) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLDataSource.loggedCloseConnection(SQLDataSource.java:421) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLDataSource.doGetData(SQLDataSource.java:391) ~[server-is.jar:?]
at com.spotfire.ws.dat.AbstractOperator.getData(AbstractOperator.java:306) ~[server-is.jar:?]
at com.spotfire.ws.dat.Pipe.doGetData(Pipe.java:172) ~[server-is.jar:?]
at com.spotfire.ws.im.QueryPipe.doGetData(QueryPipe.java:209) ~[server-is.jar:?]
at com.spotfire.ws.dat.AbstractOperator.getData(AbstractOperator.java:306) ~[server-is.jar:?]
at com.spotfire.ws.dat.Formatter.getNextRow(Formatter.java:158) ~[server-is.jar:?]
at com.spotfire.ws.dat.sbdf.formatter.SpotfireBinaryDataFormatter.getDataForSlice(SpotfireBinaryDataFormatter.java:388) ~[server-is.jar:?]
at com.spotfire.ws.dat.sbdf.formatter.SpotfireBinaryDataFormatter.writeData(SpotfireBinaryDataFormatter.java:242) ~[server-is.jar:?]
at com.spotfire.ws.dat.sbdf.formatter.SpotfireBinaryDataFormatter.getData(SpotfireBinaryDataFormatter.java:194) ~[server-is.jar:?]
at com.spotfire.ws.dat.Job$GetDataTask.execute(Job.java:951) ~[server-is.jar:?]
at com.spotfire.ws.dat.Job$Task.run(Job.java:753) ~[server-is.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_144]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_144]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]
ERROR 2018-12-11T04:58:56,190-0500 [*pool-13-thread-6, USER_NAME, #785569, #3311168*] ws.dat.AbstractOperator: Get data from job failed.
com.spotfire.ws.dat.OperatorException: com.spotfire.ws.im.IMException: Failed to get data: java.io.IOException: Protocol violation: [ 14, 76, ]
at com.spotfire.ws.im.ds.sql.SQLDataSource.doGetData(SQLDataSource.java:393) ~[server-is.jar:?]
at com.spotfire.ws.dat.AbstractOperator.getData(AbstractOperator.java:306) ~[server-is.jar:?]
at com.spotfire.ws.dat.Pipe.doGetData(Pipe.java:172) ~[server-is.jar:?]
at com.spotfire.ws.im.QueryPipe.doGetData(QueryPipe.java:209) ~[server-is.jar:?]
at com.spotfire.ws.dat.AbstractOperator.getData(AbstractOperator.java:306) ~[server-is.jar:?]
at com.spotfire.ws.dat.Formatter.getNextRow(Formatter.java:158) ~[server-is.jar:?]
at com.spotfire.ws.dat.sbdf.formatter.SpotfireBinaryDataFormatter.getDataForSlice(SpotfireBinaryDataFormatter.java:388) ~[server-is.jar:?]
at com.spotfire.ws.dat.sbdf.formatter.SpotfireBinaryDataFormatter.writeData(SpotfireBinaryDataFormatter.java:242) ~[server-is.jar:?]
at com.spotfire.ws.dat.sbdf.formatter.SpotfireBinaryDataFormatter.getData(SpotfireBinaryDataFormatter.java:194) ~[server-is.jar:?]
at com.spotfire.ws.dat.Job$GetDataTask.execute(Job.java:951) ~[server-is.jar:?]
at com.spotfire.ws.dat.Job$Task.run(Job.java:753) ~[server-is.jar:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_144]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_144]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]
Caused by: com.spotfire.ws.im.IMException: Failed to get data: java.io.IOException: Protocol violation: [ 14, 76, ]
... 14 more
Caused by: java.sql.SQLException: java.io.IOException: Protocol violation: [ 14, 76, ]
at com.spotfire.ws.dat.FasterBasicRow$BasicFieldSetter$AbstractClobFieldSetter.setValue(FasterBasicRow.java:459) ~[server-is.jar:?]
at com.spotfire.ws.dat.FasterBasicRow.setValues(FasterBasicRow.java:136) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLQuerySession.doGetData(SQLQuerySession.java:422) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLQuerySession.getData(SQLQuerySession.java:408) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLDataSource.doGetData(SQLDataSource.java:388) ~[server-is.jar:?]
... 13 more
Caused by: java.io.IOException: Protocol violation: [ 14, 76, ]
at oracle.jdbc.driver.OracleClobReader.needChars(OracleClobReader.java:264) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.jdbc.driver.OracleClobReader.read(OracleClobReader.java:195) ~[ojdbc7.jar:12.1.0.1.0]
at java.io.Reader.read(Reader.java:140) ~[?:1.8.0_144]
at com.spotfire.ws.dat.FasterBasicRow$BasicFieldSetter$AbstractClobFieldSetter.setValue(FasterBasicRow.java:450) ~[server-is.jar:?]
at com.spotfire.ws.dat.FasterBasicRow.setValues(FasterBasicRow.java:136) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLQuerySession.doGetData(SQLQuerySession.java:422) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLQuerySession.getData(SQLQuerySession.java:408) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLDataSource.doGetData(SQLDataSource.java:388) ~[server-is.jar:?]
... 13 more
Caused by: java.sql.SQLException: Protocol violation: [ 14, 76, ]
at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:669) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:249) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.jdbc.driver.T4C8TTIClob.read(T4C8TTIClob.java:245) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.jdbc.driver.T4CConnection.getChars(T4CConnection.java:3901) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.sql.CLOB.getChars(CLOB.java:517) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.jdbc.driver.OracleClobReader.needChars(OracleClobReader.java:245) ~[ojdbc7.jar:12.1.0.1.0]
at oracle.jdbc.driver.OracleClobReader.read(OracleClobReader.java:195) ~[ojdbc7.jar:12.1.0.1.0]
at java.io.Reader.read(Reader.java:140) ~[?:1.8.0_144]
at com.spotfire.ws.dat.FasterBasicRow$BasicFieldSetter$AbstractClobFieldSetter.setValue(FasterBasicRow.java:450) ~[server-is.jar:?]
at com.spotfire.ws.dat.FasterBasicRow.setValues(FasterBasicRow.java:136) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLQuerySession.doGetData(SQLQuerySession.java:422) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLQuerySession.getData(SQLQuerySession.java:408) ~[server-is.jar:?]
at com.spotfire.ws.im.ds.sql.SQLDataSource.doGetData(SQLDataSource.java:388) ~[server-is.jar:?]
... 13 more