Can't create JChem indexes.

User 7f33ec9a5c

28-09-2016 00:55:53

Hi,


I'm having trouble creating JChem indexes on Varchar2 columns in a test instance.


We moved our production instance into a test instance, upgraded compatibility to 12 and changed 'max_string_size'.


 


SQL> select value from v$parameter where name = 'max_string_size'; 


VALUE


--------------------------------------------------------------------------------


EXTENDED


 


 


So now:


 


SQL> create table mf_Temp(frustrated varchar2(4000));


SQL> CREATE INDEX SENOBASE.mf_index ON SENOBASE.mf_Temp (frustrated)


   INDEXTYPE IS JCHEM.JC_IDXTYPE  PARAMETERS ('TABLESPACE=structure_indexes,tdf=y,haltOnError=nf');


 


Error starting at line : 37 in command -


CREATE INDEX SENOBASE.mf_index ON SENOBASE.mf_Temp (frustrated)


   INDEXTYPE IS JCHEM.JC_IDXTYPE  PARAMETERS ('TABLESPACE=structure_indexes,tdf=y,haltOnError=nf')


Error at Command Line : 37 Column : 23


Error report -


SQL Error: ORA-29855: error occurred in the execution of ODCIINDEXCREATE 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.sql.SQLSyntaxErrorException: ORA-00942: table or view does not exist


ORA-06512: at "JCHEM.JCHEM_CORE_PKG", line 105


ORA-06512: at "JCHEM.JC_IDXTYPE_IM", line 20


29855. 00000 -  "error occurred in the execution of ODCIINDEXCREATE routine"


*Cause:    Failed to successfully execute the ODCIIndexCreate routine.


*Action:   Check to see if the routine has been coded correctly.


 


Alternatively, if I try and index an existing table:


CREATE INDEX SENOBASE.JC_SALTS_IDX ON SENOBASE.KNOWN_SALTS (SALT)


*


ERROR at line 1:


ORA-29855: error occurred in the execution of ODCIINDEXCREATE 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:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


ORA-06512: at "JCHEM.JCHEM_CORE_PKG", line 105


 


ORA-06512: at "JCHEM.JC_IDXTYPE_IM", line 20


Any help would be appreciated. Sorry for the cut/paste formatting.

User 7f33ec9a5c

28-09-2016 01:44:30

Hi,


It would be really great if there was a try-catch-throw that threw the exact failed DML statement every time the JCart Java gets into the oracle database.  Allowing unhanded errors like you do is a bit surprising.


Over the years, we've had several issues where the cartridge just blew up, and the only way to get any helpful information was to post to the forum.


From a user's perspective it would be pretty helpful if there was more information about what the cartridge was trying to do when it blew up. The DML would be extremely helpful.


I don't think jcart_logger is suitable for this purpose, per below, as to the best of my ability, I could not find the offending DML in either the debug level logging or error level logging.


Thank you,
~mike


SQL> call jcart_logger.set_log_level('chemaxon', 3);


 


Call completed.


 


SQL> commit;


 


Commit complete.


 


SQL> exec dbms_java.set_output(32000);


 


PL/SQL procedure successfully completed.


 


SQL> CREATE INDEX SENOBASE.JC_SALTS_IDX ON SENOBASE.KNOWN_SALTS (SALT)


   INDEXTYPE IS JCHEM.JC_IDXTYPE  PARAMETERS ('TABLESPACE=structure_indexes,tdf=y,haltOnError=nf');  2  


CREATE INDEX SENOBASE.JC_SALTS_IDX ON SENOBASE.KNOWN_SALTS (SALT)


*


ERROR at line 1:


ORA-29855: error occurred in the execution of ODCIINDEXCREATE 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:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


ORA-06512: at "JCHEM.JCHEM_CORE_PKG", line 105


ORA-06512: at "JCHEM.JC_IDXTYPE_IM", line 20


 


 


SQL> exec dbms_java.set_output(32000);


 


PL/SQL procedure successfully completed.


 


SQL> set serveroutput on


SQL> exec dbms_java.set_output(32000);


2016-09-27 18:33:34.782 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.Indexing: idxSubType=0


2016-09-27 18:33:34.812 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.sharedorajcsrv.metadata.JccDefaultProperties: About to


read default property validity timestamp


2016-09-27 18:33:34.817 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.sharedorajcsrv.metadata.JccDefaultProperties:


Executing: SELECT g.prop_value as prop_value FROM jchem.jc_idx_property g WHERE


g.prop_name = ?


2016-09-27 18:33:34.819 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.sharedorajcsrv.metadata.JccDefaultProperties:


getInstance(): instance.validityTimestamp=2016-05-20 18:24:59.017,


realVt=2016-05-20 18:24:59.017


2016-09-27 18:33:34.821 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.Indexing: STD_CONF:SQL: null


2016-09-27 18:33:34.822 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.Indexing: Dropping index:


idxSchema=SENOBASE, idxName=JC_SALTS_IDX, idxPartition=null, tblSchema=SENOBASE,


tblName=KNOWN_SALTS


2016-09-27 18:33:34.824 [43530086, SENOBASE, SENOBASE]: INFO -


chemaxon.jchem.cartridge.oraresident.Indexing: No index table name found in the


JC_IDX_PROPERTY table, cleanup was unsuccessful.


2016-09-27 18:33:34.860 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.Indexing: Meta data intialized


2016-09-27 18:33:34.872 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.Indexing: About to call


getIndexServer().createIndex(info) with


IndexCreateInfo[IndexingInfo[TableOpInfo[baseSchemaName=SENOBASE,


baseTableName=KNOWN_SALTS, indexSchemaName=SENOBASE, indexName=JC_SALTS_IDX,


indexPartition=null, indexTableQName=null, indexSubType=0,


jcpropTableName=SENOBASE.JChemProperties, indexedColumn="SALT",


jchemTable=false, userInfo=SENOBASE, structureColumnType=12,


tableType=0],tablePartition=null,errorHandlingMode=nf, duplicateFiltering=false,


insertSessionCount=0, skipAutoCalcCt=false,progressRefreshPeriod=1000,


errorTableName=null], tablespaceName=structure_indexes, stndzerConfig=null,


fpProperties=null, absoluteStereo=true, storageClose=null, structFpConfig=null,


autoCalcCts=null, autoCalcCtsWcn=null, loadCache=false]


2016-09-27 18:33:34.881 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.Indexing: Call


getIndexServer().createIndex(info) returned


2016-09-27 18:33:34.882 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.sharedorajcsrv.AdminProperties:


chemaxon.jchem.cartridge.indexingIsAsynch returning true from cache


2016-09-27 18:33:34.938 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler:


handleTopLevelError: handling java.rmi.ServerException: RemoteException occurred


in server thread; nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


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


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:8


95)


at


java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)


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


at


sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.


java)


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


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


at


java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInv


ocationHandler.java)


at


java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandl


er.java)


at com.sun.proxy.$Proxy5.waitForProgressRefresh(Unknown Source)


at


chemaxon.jchem.cartridge.oraresident.Indexing$1.waitForRefresh(Indexing.java)


at


chemaxon.jchem.cartridge.oraresident.longop.LongOpStatus.updateStatus(LongOpStat


us.java)


at chemaxon.jchem.cartridge.oraresident.Indexing.indexCreate(Indexing.java)


Caused by: java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


at


chemaxon.jchem.cartridge.rmi.impl.RmiExceptionHandler.handleError(RmiExceptionHa


ndler.java:64)


at


chemaxon.jchem.cartridge.rmi.impl.IndexImpl.waitForProgressRefresh(IndexImpl.jav


a:152)


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


at


sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav


a:25)


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


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


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:8


95)


at


java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)


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


2016-09-27 18:33:34.978 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler:


exception=java.rmi.ServerException["RemoteException occurred in server thread;


nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"], cause=chemaxon.jchem.cartridge.sharedorajcsrv.rmi.StructureFormatException


2016-09-27 18:33:34.981 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.ServerException["RemoteException occurred in server thread; nested


exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:34.983 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.RemoteException["java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:34.985 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler:


exception=java.rmi.ServerException["RemoteException occurred in server thread;


nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"], cause=chemaxon.jchem.cartridge.sharedorajcsrv.rmi.IllegalOptionException


2016-09-27 18:33:34.987 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.ServerException["RemoteException occurred in server thread; nested


exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:34.988 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.RemoteException["java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:34.990 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler:


exception=java.rmi.ServerException["RemoteException occurred in server thread;


nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"],


cause=chemaxon.jchem.cartridge.sharedorajcsrv.rmi.DuplicateStructureException


2016-09-27 18:33:34.992 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.ServerException["RemoteException occurred in server thread; nested


exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:34.993 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.RemoteException["java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:34.995 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler:


exception=java.rmi.ServerException["RemoteException occurred in server thread;


nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"], cause=chemaxon.jchem.cartridge.sharedorajcsrv.rmi.JccSecurityException


2016-09-27 18:33:34.996 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.ServerException["RemoteException occurred in server thread; nested


exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:34.998 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.RemoteException["java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:34.999 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler:


exception=java.rmi.ServerException["RemoteException occurred in server thread;


nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"], cause=java.lang.IllegalArgumentException


2016-09-27 18:33:35.001 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.ServerException["RemoteException occurred in server thread; nested


exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:35.002 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.RemoteException["java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:35.004 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler:


exception=java.rmi.ServerException["RemoteException occurred in server thread;


nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"], cause=chemaxon.jchem.cartridge.sharedorajcsrv.rmi.JccSecurityException


2016-09-27 18:33:35.005 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.ServerException["RemoteException occurred in server thread; nested


exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:35.007 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.RemoteException["java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:35.008 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler:


exception=java.rmi.ServerException["RemoteException occurred in server thread;


nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"], cause=chemaxon.jchem.cartridge.sharedorajcsrv.rmi.KilledTaskException


2016-09-27 18:33:35.010 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.ServerException["RemoteException occurred in server thread; nested


exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:35.011 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.RemoteException["java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:35.013 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler:


exception=java.rmi.ServerException["RemoteException occurred in server thread;


nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"], cause=chemaxon.jchem.cartridge.sharedorajcsrv.rmi.EvaluationException


2016-09-27 18:33:35.014 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.ServerException["RemoteException occurred in server thread; nested


exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


2016-09-27 18:33:35.016 [43530086, SENOBASE, SENOBASE]: DEBUG -


chemaxon.jchem.cartridge.oraresident.JavaStoredProcExceptionHandler: Checking


java.rmi.RemoteException["java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


"]...


Exception in thread "Root Thread" java.rmi.ServerException: RemoteException


occurred in server thread; nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


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


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:8


95)


at


java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)


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


at


sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.


java)


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


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


at


java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInv


ocationHandler.java)


at


java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandl


er.java)


at com.sun.proxy.$Proxy5.waitForProgressRefresh(Unknown Source)


at


chemaxon.jchem.cartridge.oraresident.Indexing$1.waitForRefresh(Indexing.java)


at


chemaxon.jchem.cartridge.oraresident.longop.LongOpStatus.updateStatus(LongOpStat


us.java)


at chemaxon.jchem.cartridge.oraresident.Indexing.indexCreate(Indexing.java)


Caused by: java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


at


chemaxon.jchem.cartridge.rmi.impl.RmiExceptionHandler.handleError(RmiExceptionHa


ndler.java:64)


at


chemaxon.jchem.cartridge.rmi.impl.IndexImpl.waitForProgressRefresh(IndexImpl.jav


a:152)


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


at


sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav


a:25)


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


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


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:8


95)


at


java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)


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


 


 


PL/SQL procedure successfully completed.


 


SQL> call jcart_logger.set_log_level('chemaxon', 0);


 


Call completed.


 


SQL> exec dbms_java.set_output(32000);


 


PL/SQL procedure successfully completed.


 


SQL> CREATE INDEX SENOBASE.JC_SALTS_IDX ON SENOBASE.KNOWN_SALTS (SALT)


   INDEXTYPE IS JCHEM.JC_IDXTYPE  PARAMETERS ('TABLESPACE=structure_indexes,tdf=y,haltOnError=nf');  2  


Exception in thread "Root Thread" java.rmi.ServerException: RemoteException


occurred in server thread; nested exception is:


java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


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


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:8


95)


at


java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)


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


at


sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.


java)


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


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


at


java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInv


ocationHandler.java)


at


java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandl


er.java)


at com.sun.proxy.$Proxy5.waitForProgressRefresh(Unknown Source)


at


chemaxon.jchem.cartridge.oraresident.Indexing$1.waitForRefresh(Indexing.java)


at


chemaxon.jchem.cartridge.oraresident.longop.LongOpStatus.updateStatus(LongOpStat


us.java)


at chemaxon.jchem.cartridge.oraresident.Indexing.indexCreate(Indexing.java)


Caused by: java.rmi.RemoteException: java.util.concurrent.ExecutionException:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an existing


object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


at


chemaxon.jchem.cartridge.rmi.impl.RmiExceptionHandler.handleError(RmiExceptionHa


ndler.java:64)


at


chemaxon.jchem.cartridge.rmi.impl.IndexImpl.waitForProgressRefresh(IndexImpl.jav


a:152)


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


at


sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav


a:25)


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


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


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:8


95)


at


java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918)


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


CREATE INDEX SENOBASE.JC_SALTS_IDX ON SENOBASE.KNOWN_SALTS (SALT)


*


ERROR at line 1:


ORA-29855: error occurred in the execution of ODCIINDEXCREATE 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:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


; nested exception is:


java.sql.SQLSyntaxErrorException: ORA-00955: name is already used by an


existing object


ORA-06512: at "JCHEM.JCHEM_CORE_PKG", line 105


ORA-06512: at "JCHEM.JC_IDXTYPE_IM", line 20


 


 


 


 


 


 


 


 


 

ChemAxon abe887c64e

28-09-2016 11:46:52

Hi Michael,


Our first guess is that you might not have modified the jcart.properties file according to the parameters of the new instance of the database. Would you check it?


jcart.properties is found in <jchem_home>/cartridge/conf/ folder where <jchem_home>/cartridge/ is the JChem Server start directory (it can be displayed by select jchem_core_pkg.getenvironment() from dual;).


Regards,


Krisztina

User 7f33ec9a5c

28-09-2016 18:40:44

 


HI Krisztina,


-- I can create native JChem tables...  the following command runs correctly:


exec jchem_table_pkg.create_jctable('structure_jc1', 'JChemProperties', 16, 2, 6, 'jc_structure_id number(15)', null, 1, 'tableType:molecules');


...I just can't create JChem indexes.


This is the output from jchem_core_pkg.getenvironment() 


Oracle environment: 


Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production


PL/SQL Release 12.1.0.2.0 - Production


CORE 12.1.0.2.0 Production


TNS for Linux: Version 12.1.0.2.0 - Production


NLSRTL Version 12.1.0.2.0 - Production


 


JChem owner: JCHEM


JChem Server environment: 


Java VM vendor: Sun Microsystems Inc.


Java version: 1.6.0_75


Java VM version: 20.75-b01


JChem version: 16.4.11.0


JChem index version: 16022200


JDBC driver version: 11.2.0.3.0


JChem Server start directory: /opt/chemaxon/jchem1.6/cartridge


Maximum memory: 9 GB


JChem Server host:port : db01:1099


 


... Since this is a commercial product, it would be great if you could add some error handlers to your code to identify the errors. Specifically, if oracle throws into the java code, you should at least catch and identify the DML/SQL and re-throw the error. Having an unhanded error make it all the way back to the calling application, and not being able to log or trap it more explicitly is very messy.

ChemAxon abe887c64e

29-09-2016 11:35:22

Hi Michael,


Did you check the jcart.properties file ? Does it refer to the current database and not the old one? Was jchem server stopped and started after the modification of that file ?


Nevertheless, copying of a database together with JChem Oracle
Cartridge needs some extra steps. The cartridge related objects should
be deleted from the moved database and recreated afterwards.


Please drop the followings:



Then do the followings:



After
these droppings, create the same indexes again in order to recreate the
same cartridge system as you had in the old database instance.



We'll re-think how to give more precise error messages and information for our users. Thank you for your comments.


Best regards,


Krisztina


 

User 7f33ec9a5c

30-09-2016 05:35:12










kvajda wrote:

Hi Michael,


Did you check the jcart.properties file ? Does it refer to the current database and not the old one? 


 



oops... That was the problem. Was pointed at old database.  Thank you.