java.rmi.ServerException: RemoteException occurred in server

User 325f2762fd

06-09-2008 08:16:50

Hi,





Oracle environment:


Oracle Database 10g Release 10.2.0.3.0 - Production


PL/SQL Release 10.2.0.3.0 - Production


CORE 10.2.0.3.0 Production


TNS for Linux: Version 10.2.0.3.0 - Production


NLSRTL Version 10.2.0.3.0 - Production





JChem Server environment:


Java VM vendor: Sun Microsystems Inc.


Java VM version: 10.0-b22


JChem version: 5.1.0


JDBC driver version: 10.2.0.3.0








We are migrating 1.2 million compounds. This is running as 10 dbms_jobs in oracle. We are getting many rmi server exeception in each of the log file of the jobs. I have removed the smiles from the log file snippets (below) due to confidentiality. Any idea? Could this be configuration setup or jobs are requesting data from jchem server too quick?








21:26:51:Opened


21:51:16:100 compounds migrated


21:53:56:100 compounds migrated


21:56:30:100 compounds migrated


21:59:03:100 compounds migrated


22:01:51:100 compounds migrated


22:04:17:100 compounds migrated


22:07:00:100 compounds migrated


22:09:39:100 compounds migrated


22:12:07:100 compounds migrated


22:14:27:100 compounds migrated


22:16:37:100 compounds migrated


22:18:56:100 compounds migrated


22:19:38:Unable to migrate the compound for the notebook : OD1434/060/91 , smiles = <smile_string>, Error = ORA-29532: Java call terminated by uncaught Java exception:


ORA-06512: at line 1


ORA-06512: at "CCDIII.MAINTAIN_CONSTANTS", line 83


ORA-06512: at "CCDIII.MAINTAIN_COMPOUNDS", line 3976


ORA-29532: Java call terminated by uncaught Java exception:


ORA-06512: at line 1


ORA-06512: at "CCDIII.MAINTAIN_CONSTANTS", line 83


ORA-06512: at "CCDIII.MAINTAIN_COMPOUNDS", line 1561


ORA-29532: Java call terminated by uncaught Java exception: java.rmi.ServerException: RemoteException occurred in server thread; nested ex


22:20:53:Unable to migrate the compound for the notebook : OD1434/093/39 , smiles = <smile_string>, Error = ORA-29532: Java call terminated by uncaught Java exception:


ORA-06512: at line 1


ORA-06512: at "CCDIII.MAINTAIN_CONSTANTS", line 83


ORA-06512: at "CCDIII.MAINTAIN_COMPOUNDS", line 3976


ORA-29532: Java call terminated by uncaught Java exception:


ORA-06512: at line 1


ORA-06512: at "CCDIII.MAINTAIN_CONSTANTS", line 83


ORA-06512: at "CCDIII.MAINTAIN_COMPOUNDS", line 1561


23:17:01:100 compounds migrated


23:19:30:100 compounds migrated


23:21:56:100 compounds migrated








Many Thanks


Rajeev

ChemAxon aa7c50abf8

06-09-2008 08:36:03

Hi Rajeev,
Quote:
ORA-29532: Java call terminated by uncaught Java exception: java.rmi.ServerException: RemoteException occurred in server thread; nested ex
It appears that the error occurs in JChemServer. Please, could you check the JChemServer's recent log file (most probably logs/jcart0.log) for recent exceptions/Java stack traces?





Thanks


Peter

User 325f2762fd

06-09-2008 08:44:13

I am attaching the jchem server log file and also below are the latest log file entries





SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:01:20 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:01:27 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:01:46 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:01:46 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:01:56 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:02:00 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:12:08 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:12:09 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:12:09 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:12:29 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:13:21 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:13:29 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:13:36 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:15:00 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:15:42 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:15:43 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:15:55 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:16:01 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException


Sep 6, 2008 9:16:02 AM chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil handleError


SEVERE: Error in RMI call


java.lang.NullPointerException

ChemAxon aa7c50abf8

06-09-2008 10:00:30

The lack of Java stack traces is rather unexpected. (This is bad, because I don't see anything specific about the errors -- which I should.) When seeing unusual behavior like this, my first suspects are out of memory errors. How much memory has been allocated to JChemServer? What kind of operations are involved during migration? (It would be helpful, if the error messages generated by the cartridge operator calls on the client side could be seen.) What other activities are run concurrently on this cartridge instance?





Does the thee errors with stack trace at the beginning of the log file look like familiar? Do you know where they came from and whether their causes have been clarified?





Thanks


Peter

User 325f2762fd

06-09-2008 19:04:47

700M has been allocated to JChemServer.


We are inserting structures into a structure table which has two columns with domain index as below.





CREATE INDEX CCDIII.IXJC_STRUC_DIS_SMILES ON CCDIII.STRUCTURES


(DISPLAYED_SMILES)


INDEXTYPE IS JCHEM.JC_IDXTYPE


PARAMETERS('TABLESPACE=Indx_CCDIII,tableType=molecules')


NOPARALLEL;





CREATE INDEX CCDIII.IXJC_STRUC_SMILES ON CCDIII.STRUCTURES


(OVERLAP_SMILES)


INDEXTYPE IS JCHEM.JC_IDXTYPE


PARAMETERS('TABLESPACE=Indx_CCDIII,tableType=molecules')


NOPARALLEL;





We also split the compound structure into molecules and unique molecule is inserted into another table called molecule. Before inserting into molecules table we do a jchem search to check whether exact molecule already exists or not. If not then we insert it into the molecule table.





I would say we are inserting structure data concurrently into tables by 10 sessions and at the same we are also performing exact search using jchem operator. No other activities were performed in the database server and jchem server (both are on same server).





Could we change some setting to get the full error messages?

ChemAxon aa7c50abf8

06-09-2008 20:48:20

The following step alone may help getting more info:





In the server.sh file, insert after line#66 the following line:


Code:
-XX:-OmitStackTraceInFastThrow \
(mind the backslash at the end). You need to restart JChemServer for this change to take effect.








If the above doesn't help, we have the option to increase logging verbosity:





1. Back-up the conf/log.properties file, so you can restore the original.


2. Change line#29 from


Code:
.level = WARNING
to
Code:
.level = FINEST



3. Put line#41 into comment (insert a # sign at the beginnig)


4. Insert the following line after line#41:


Code:
java.util.logging.FileHandler.formatter = chemaxon.util.logging.SimpleFormatterTh






For these changes in the log.properties file to take effect, you need either to restart JChemServer or call
Code:
server.sh reload
.





The second set of changes will result in a large log file, which you may want to send me by mail or ftp rather than posting it here. For the same reason, it would probably make sense to stop the migration process after the first couple of errors appear in order to first see how useful the increased log details are.





Thanks


Peter

ChemAxon aa7c50abf8

06-09-2008 20:57:49

It would make sense to first see if the problem is input-specific -- id est: to see if it can be consistently reproduced with the structures alone whose migration appears fail (eg: OD1434/060/91). If the problem is input-specific, using the problematic structures alone would make the test case much easier to manage.





Thanks


Peter

User 325f2762fd

08-09-2008 14:35:05

We will try your suggestion and let you know. I am unable to change the logging parameters now since migration is running since last 3 days and it has done 50 % migration. So I wait for the migration to finish and then try your suggestion.

User 325f2762fd

09-09-2008 22:32:38

I have noticed oracle dbms jobs have created trace files in the server and contain the following error message for the smiles that have failed to migrate. Could that be the full error message we are looking for?





java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:


java.rmi.RemoteException


at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:336)


at sun.rmi.transport.Transport$1.run(Transport.java:159)


at java.security.AccessController.doPrivileged(Native Method)


at sun.rmi.transport.Transport.serviceCall(Transport.java:155)


at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)


at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)


at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)


at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)


at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)


at java.lang.Thread.run(Thread.java:619)


at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)


at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)


at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)


at chemaxon.jchem.cartridge.rmi.impl.MiscellaniousImpl_Stub.standardize(Unknown Source)


at chemaxon.jchem.cartridge.JFunctions.standardize(JFunctions.java:1700)


Caused by: java.rmi.RemoteException


at chemaxon.jchem.cartridge.rmi.impl.RmiImplUtil.handleError(RmiImplUtil.java:60)


at chemaxon.jchem.cartridge.rmi.impl.MiscellaniousImpl.standardize(MiscellaniousImpl.java:65)


at sun.reflect.GeneratedMethodAccessor5.invoke(Unknown Source)


at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)


at java.lang.reflect.Method.invoke(Method.java:597)


at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:305)


at sun.rmi.transport.Transport$1.run(Transport.java:159)


at java.security.AccessController.doPrivileged(Native Method)


at sun.rmi.transport.Transport.serviceCall(Transport.java:155)


at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:535)


at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:790)


at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:649)


at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)


at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)


at java.lang.Thread.run(Thread.java:619)

ChemAxon aa7c50abf8

10-09-2008 07:45:03

Even though it stops short of indicating what the error is, this message tells us at least in which operation the error occurs: standardization.





Would it be possible to pick a few of the smiles that have failed to migrate and standardizing them with the Standardizer configuration you are using during migration? Or (if standardizing alone doesn't reproduce the problem) would it be possible to replay a mini migration using theses few structures as inputs?





(If the smiles are not highly confidential, you could send some of them to us along with the standardizer configuration by e-mail, so we can look at them for ourselves.)





Thanks


Peter

ChemAxon aa7c50abf8

10-09-2008 20:01:05

This is a bug in Standardizer which has been fixed in JChem 5.1.1:
Quote:
Standardizer threw NullPointerException in some cases when "clearstereo" was performed.
Thanks


Peter