java heap space errors with simple structure queries

User 81a38f9467

21-05-2013 22:29:33

We recently upgraded to 5.11.5 from an older cartridge version and now are encountering java heap space errors with simple structure queries.  For example, this query ...



select ID
from STRUCTURE_TABLE
where jc_compare(CMPD_STRUCTURE, 'CN(CC1=NC2=C(N)N=C(N)N=C2N=C1)C1=CC=C(C=C1)C(=O)NC(CCC(O)=O)C(O)=O', 't:f maxHitCount:10000000  doubleBondStereo:M tautomersearch:y')=1;


... generated the following error:


ORA-29904: error in executing ODCIIndexClose() routine
ORA-29532: Java call terminated by uncaught Java exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
 java.rmi.RemoteException: java.util.concurrent.ExecutionException: chemaxon.jchem.db.DatabaseSearchException: java.lang.OutOfMemoryError: Java heap space
Caused by:
Java heap space; nested exception is:
 chemaxon.jchem.db.DatabaseSearchException: java.lang.OutOfMemoryError: Java heap space
Caused by:
Java heap space; nested exception is:
 java.lang.OutOfMemoryError: Java heap space
ORA-06512: at "JCHEM.JCHEM_CORE_PKG", line 244
ORA-06512: at "JCHEM.JC_IDXTYPE_IM", line 587
ORA-29903: error in executing ODCIIndexFetch() routine
ORA-29532: Java call terminated by uncaught Java exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
 java.rmi.RemoteException: chemaxon.jchem.db.DatabaseSearchException: Error
Caused by:
Java heap space; nested exception is:
 java.lang.OutOfMemoryError: Java heap space
ORA-06512: at "JCHEM.JCHEM_CORE_PKG", line 239
ORA-06512: at "JCHEM.JC_IDXTYPE_IM", line 538
29904. 00000 -  "error in executing ODCIIndexClose() routine"
*Cause:    The execution of ODCIIndexClose routine caused an error.
*Action:   Examine the error messages produced by the indextype code and
           take appropriate action.


The error occurred more than once with this query, though not on every occasion when the query was run.  We never observed this error with the older cartridge. 
We are using the default settings:


jcserver.maxmem=700m
sysprop.java.rmi.dgc.leaseValue=60000000
sysprop.sun.rmi.dgc.ackTimeout=60000000
sysprop.sun.rmi.dgc.server.gcInterval=60000000
sysprop.sun.rmi.transport.connectionTimeout=60000000



Has something changed with the cartridge such that more memory is now required for these routine searches?  Do you have any insights into why this may be occurring?

ChemAxon 61b4fee994

22-05-2013 07:17:30

Hi,


The size of the cache can change between Jchem versions, especially between major versions. At most of the times it grows to support our new features, so I suggest increasing jcserver.maxmem to a higher number, probably 1000m. We can't tell easily the exact number, because it depends on the type of the stored structures.


If you plan further upgrades, in version 5.12 the cache size increases again to aid tautomer searches.



Regards,


Tamas

User 81a38f9467

22-05-2013 17:02:17

Hi Tamas,


Thank you for your response --- we will try a larger heap size.    I'll note that we did the calculation for the heap size using the formula in the documentation here:


http://www.chemaxon.com/jchem/doc/admin/cartridge.html#server_memory


... and the current size (700m) should be more than enough.   But I understand that this is difficult to determine as every case is different.    Could you check to see that the recommendations for sizing reflect the larger requirements for 5.12.x and beyond (i.e. has the documetation been updated)?


Thanks,


Tim

ChemAxon 61b4fee994

23-05-2013 08:08:59

Hi,


I checked it, we increased our estimation by about 60 percent from the 5.12 version, and the dcoumentation reflects our new measurements (we always make these estimations based on our measurements on large databases containing drug-like stuctures).


Tamas