A critical glitch in IJC 5.11.2 afffecting structure search

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



ChemAxon 60ee1f1328

06-11-2012 10:20:06

Hi dlee,


Apologies for the delayed response.


I will try and replicate your observations under the exact conditions you have stated - thanks for the info.


I think there is a new minor version of IJC available now : 5.11.3...you could always try that version as well and see if you see the same issue.


http://www.chemaxon.com/download/instant-jchem/


 


Thanks,


 


Daniel.

User 55ffa2f197

06-11-2012 12:51:03

By exact condition you mean you would somehow produce "protocol violation' error in some fashion, which may or may not be caused by the long clob field in schema, after the error see if it affects the substrcuture search. Am I right? Let's do this step first at your end, see if the error is reproduciable in 5.11.1, 2.


Thanks


Dong

ChemAxon 60ee1f1328

07-11-2012 09:20:55

Please state which version of the cartridge you are using please.


 


Thanks,


Daniel.

ChemAxon 60ee1f1328

07-11-2012 10:01:32

Currently I cannot replicate either of your errors/observations.


I used :


IJC : 5.11.2


Cart : 5.11.0


Table type : Standard + index


If you can tell us the cartridge version you use and the table type (JChem + index) I can try again.


Thanks,


Daniel.

ChemAxon 60ee1f1328

07-11-2012 11:36:11

Out of interest I repeated with a standard jchem table with no index.


It worked fine also.

ChemAxon 2bdd02d1e5

12-11-2012 09:55:28

Apparently we can't reproduce it ourselves. Would you please confirm through webex... I can organize GoToMeeting if you like. Let's discuss time and date via email.


Thanks,
Filip