ORA-03106 during substructure search with Python client

ChemAxon aa7c50abf8

10-07-2012 11:49:01


I’ve written some python code to run some cartridge queries every couple of hours to cache the indexes we have.

The process is open cursor > run queries > close cursor > close database connection.
  
The first time I ran the code it was fine, but now when I run it I get this error:- 
[...]$ ./cache_queries.py
in close db
closed cursor
Traceback (most recent call last):
  File "./cache_queries.py", line 10, in <module>
    myup.dbClose()
  File "functions.py", line 661, in dbClose
    self.foo.close()
cx_Oracle.DatabaseError: ORA-29904: error in executing ODCIIndexClose() routine
ORA-01001: invalid cursor
ORA-06512: at "JCHEM.JCHEM_CORE_PKG", line 249
ORA-06512: at "JCHEM.JC_IDXTYPE_IM", line 654

Does this make sense to you? The queries I’m running are against smiles columns and binary fingerprint columns.

I can run the script executing queries that are just text/numerical based, the error only occurs when doing the cartridge searches.

I am opening and closing the python cursor, I don’t think that is the problem.

 On further investigation there is another error message being generated:-  
Error running substructure query ORA-03106: fatal two-task communication protocol error

ChemAxon aa7c50abf8

10-07-2012 11:50:00

 


I checked all my environment variables etc and tracked down the problem.

It was entirely in python, I was using a python 2.6 environment, calling methods from a python 2.6 module in a script where the #! header line was pointing to python 2.5. The version mismatch was forgiving for all standard queries but not for cartridge queries.

 

I hope this info might help someone in the future.