User 55ffa2f197
02-11-2012 13:34:00
Hi, I am running a substructure search in IJC 5.11.2 against an Oracle schema with data cartridge. The search query was drawn in the default grid view under a data tree. The search works fine initially and retrieved the right number of compounds containing the query. The moment when I open another slighty complicated form view to look at the hits under the data tree I am getting a Protocol Violation error in pop-up window. Look at it I would assume it has to do with the clob field fetched through schema. What critical is the ensuing event, that is, if I run the same structure search query again I am getting a roll back JDBC transaction error, and only getting 10 hits instead of 251, even when I try benzene I am only getting ~900 hits, in reality it should return millions hits. Apparently the first Protocol Violation issue affects the subsequent substructure search.
After confirming this multiple times I tried the same thing in IJC 5.10.x development version. As with 5.11.2 I am getting Protocol Violation error. HOWEVER in 5.10 the subsequent substructure search did not get affected by the Protocol Violation as in 5.11.2.
I would like to confirm this with you through webex. The clob field in the form is critical for us, I may not want to chuck it from the form. We can live with the Protocol Violation error. But we REALLY do not want this to affect the structure search. If it is confirmed and there is not a quick patch fix we may have to switch back to 5.10.
Following are the two error messages
Protocol Violation:
java.sql.SQLException: Protocol violation at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445) at oracle.jdbc.driver.T4C8TTILob.receiveReply(T4C8TTILob.java:911) at oracle.jdbc.driver.T4C8TTIClob.read(T4C8TTIClob.java:227) at oracle.jdbc.driver.T4CConnection.getChars(T4CConnection.java:2652) at oracle.sql.CLOB.getChars(CLOB.java:288) at oracle.sql.CLOB.getSubString(CLOB.java:183) at org.springframework.jdbc.support.lob.OracleLobHandler.getClobAsString(OracleLobHandler.java:229) at org.springframework.jdbc.support.lob.AbstractLobHandler.getClobAsString(AbstractLobHandler.java:45) at com.im.commons.db.columnhandling.impl.DefaultStringColumnHandler.mapRow(DefaultStringColumnHandler.java:52) at com.im.commons.db.columnhandling.oracle.OracleStringColumnHandler.mapRow(OracleStringColumnHandler.java:35) at com.im.commons.db.columnhandling.oracle.OracleStringColumnHandler.mapRow(OracleStringColumnHandler.java:26) at com.im.commons.db.columnhandling.impl.AbstractColumnHandler.mapRow(AbstractColumnHandler.java:130) at com.im.df.impl.db.DBSchemaUtilities.extractValue(DBSchemaUtilities.java:372) [catch] at com.im.df.impl.db.dao.SQLResultsetExtractor.extractDataForRow(SQLResultsetExtractor.java:80) at com.im.df.impl.db.dao.SQLResultsetExtractor.extractData(SQLResultsetExtractor.java:61) at com.im.df.impl.db.dao.SQLResultsetExtractor.extractData(SQLResultsetExtractor.java:39) at org.springframework.jdbc.core.JdbcTemplate$1.doInPreparedStatement(JdbcTemplate.java:648) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:586) Caused: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL []; SQL state [99999]; error code [17401]; Protocol violation; nested exception is java.sql.SQLException: Protocol violation at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:83) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) at org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:80) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:602) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:636) at org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:661) at com.im.df.impl.db.dao.SQLParallelRetrievingWorker.computeTask(SQLParallelRetrievingWorker.java:129) at com.im.df.impl.db.dao.ResultsBuilder.execute(ResultsBuilder.java:168) at com.im.df.impl.db.dao.DFDaoSupport.getData(DFDaoSupport.java:121) at com.im.df.impl.db.dao.DFDaoWrapper.getData(DFDaoWrapper.java:91) at com.im.df.impl.db.EDPCache.fetchValuesInternal(EDPCache.java:190) at com.im.df.impl.db.EDPCache.fetchValues(EDPCache.java:87) at com.im.df.impl.db.DBEntityDataProviderImpl.getData(DBEntityDataProviderImpl.java:245) at com.im.df.impl.db.ResultSetImpl$VS.getData(ResultSetImpl.java:830) at com.im.ijc.widgets.abstractwidget.FieldHelper.getCurrentValue(FieldHelper.java:79) at com.im.ijc.widgets.abstractwidget.AbstractSingleFieldWidget.getCurrentValue(AbstractSingleFieldWidget.java:309) at com.im.ijc.widgets.abstractwidget.AbstractSingleFieldWidget$3.run(AbstractSingleFieldWidget.java:328) at java.awt.event.InvocationEvent.dispatch(Unknown Source) at java.awt.EventQueue.dispatchEventImpl(Unknown Source) at java.awt.EventQueue.access$000(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.awt.EventQueue$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:162) at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source) [catch] at java.awt.EventDispatchThread.run(Unknown Source) The error message affects the structure search org.springframework.transaction.TransactionSystemException: Could not roll back JDBC transaction; nested exception is java.sql.SQLRecoverableException: No more data to read from socket at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:285) at org.springframework.transaction.support.AbstractPlatformTransactionManager.processRollback(AbstractPlatformTransactionManager.java:845) at org.springframework.transaction.support.AbstractPlatformTransactionManager.rollback(AbstractPlatformTransactionManager.java:822) at org.springframework.transaction.support.TransactionTemplate.rollbackOnException(TransactionTemplate.java:161) at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:134) at com.im.ijcs.impl.query.LocalQueryExecutor.execute(LocalQueryExecutor.java:59) at com.im.ijcs.impl.query.DefaultQueryService.findImpl(DefaultQueryService.java:155) at com.im.ijcs.impl.query.DefaultQueryService$FindExecutor.call(DefaultQueryService.java:125) at com.im.ijcs.impl.query.DefaultQueryService$FindExecutor.call(DefaultQueryService.java:103) at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source) at java.util.concurrent.FutureTask.run(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.sql.SQLRecoverableException: No more data to read from socket at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:101) at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:133) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:199) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:263) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:271) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:445) at oracle.jdbc.driver.T4CMAREngine.unmarshalUB1(T4CMAREngine.java:1053) at oracle.jdbc.driver.T4CMAREngine.unmarshalSB1(T4CMAREngine.java:1010) at oracle.jdbc.driver.T4C7Ocommoncall.receive(T4C7Ocommoncall.java:97) at oracle.jdbc.driver.T4CConnection.doRollback(T4CConnection.java:626) at oracle.jdbc.driver.PhysicalConnection.rollback(PhysicalConnection.java:3470) at org.apache.commons.dbcp.DelegatingConnection.rollback(DelegatingConnection.java:368) at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.rollback(PoolingDataSource.java:323) at org.apache.commons.dbcp.DelegatingConnection.rollback(DelegatingConnection.java:368) at org.springframework.jdbc.datasource.DataSourceTransactionManager.doRollback(DataSourceTransactionManager.java:282) ... 13 more