ORA-0131 on creating index

User 4140faeba5

18-08-2010 07:51:08

Hi.


I've just installed Jchem 5.3.7 on Oracle 11.2.0.1


I'm running Java 1.6.0_20


Creating jchem tables works fine, but when I try to create the jchem index I get


ORA-0131.


The command I'm trying is


"create index idx_jcelnmol_struct on jcelnmol_moltable(cd_structure) indextype is jchem.jc_idxtype parameters('JChemPropertiesTable=jchem.jchemproperties');


I followed the admin guide to give the ELN user the correct privileges.


Turning on debugging gives the following.


Trace file /home/oracle/product/diag/rdbms/fett_eln/ELN/trace/ELN_ora_23847.trc
Oracle Database 11g Release 11.2.0.1.0 - 64bit Production
ORACLE_HOME = /home/oracle/product/db11g
System name:    Linux
Node name:    fett
Release:    2.6.32-21-server
Version:    #32-Ubuntu SMP Fri Apr 16 09:17:34 UTC 2010
Machine:    x86_64
Instance name: ELN
Redo thread mounted by this instance: 1
Oracle process number: 42
Unix process pid: 23847, image: oracle@fett (TNS V1-V3)


*** 2010-08-18 09:43:05.676
*** SESSION ID:(25.18413) 2010-08-18 09:43:05.676
*** CLIENT ID:() 2010-08-18 09:43:05.676
*** SERVICE NAME:(SYS$USERS) 2010-08-18 09:43:05.676
*** MODULE NAME:(SQL*Plus) 2010-08-18 09:43:05.676
*** ACTION NAME:() 2010-08-18 09:43:05.676
 
2010-08-18 09:43:05.674 [23895, ELN, ELN]: WARNING - chemaxon.jchem.cartridge.JcMetaDataFunctions: Name of the connected Oracle instance could not be obtained.
2010-08-18 09:43:05.827 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.JcMetaDataFunctions: idxSchema=ELN, idxName=IDX_JCELNMOL_STRUCT, idxPartition=null, evenIfJChemTable=false
2010-08-18 09:43:05.828 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.JcMetaDataFunctions: masterPropName=ELN.IDX_JCELNMOL_STRUCT.idxTable
2010-08-18 09:43:05.828 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.JcMetaDataFunctions: Executing: SELECT prop_value FROM eln.jc_idx_property WHERE prop_name = ?
2010-08-18 09:43:05.831 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.JcMetaDataFunctions: idxTblQName=null
2010-08-18 09:43:05.832 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.JcMetaDataFunctions: Returning null for ELN.IDX_JCELNMOL_STRUCT
2010-08-18 09:43:05.832 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.Indexing: indexDrop: jcptName=null
2010-08-18 09:43:05.921 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.Indexing: idxSubType=0
2010-08-18 09:43:05.924 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.structs.JCartDefaultProperties: About to read default property validity timestamp
2010-08-18 09:43:05.924 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.structs.JCartDefaultProperties: Checking custom dp table...
2010-08-18 09:43:05.925 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.structs.JCartDefaultProperties: hasCustomDpTable=false
2010-08-18 09:43:05.926 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.structs.JCartDefaultProperties: Executing: SELECT g.prop_value as prop_value FROM jchem.jc_idx_property g WHERE g.prop_name = ?
2010-08-18 09:43:05.926 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.structs.JCartDefaultProperties: getInstance(): instance.validityTimestamp=null, realVt=2010-08-17 12:05:00.008
2010-08-18 09:43:05.927 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.JcMetaDataFunctions: Executing: SELECT prop_value FROM eln.jc_idx_property WHERE prop_name = ?
2010-08-18 09:43:05.928 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.JcMetaDataFunctions: Executing: SELECT prop_value FROM jchem.jc_idx_property WHERE prop_name = ?
2010-08-18 09:43:05.930 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.JcMetaDataFunctions: Executing: "SELECT prop_value FROM jchem.jchemproperties WHERE prop_name = ?" with ?1=table.ELN.JCELNMOL_MOLTABLE.validityTimestamp
2010-08-18 09:43:05.934 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.JcMetaDataFunctions: Returning: 2010-08-17 14:13:16.42
2010-08-18 09:43:05.934 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.structs.JCartIndexDescriptor: getCachedOrNew: descriptor is not cached in {}: chemaxon.jchem.cartridge.structs.JCartIndexDescriptor[super = chemaxon.jchem.cartridge.structs.JCartIndexDescriptor[absoluteStereo = null, standardizerConfig = UNINITIALIZED_STRING, mdNames = [Lchemaxon.jchem.cartridge.tunnel.MdMetaData;@5d52c83d, fingerPrintProps  = null], jcptName = jchem.jchemproperties, isJChemTable = true, tableSchemaName = ELN, tableName = JCELNMOL_MOLTABLE, indexSchemaName = null, indexName = null, indexPartitionName = null, colName = null, idxTableType = null, chemTermsMap=null, idxSubType=0, validityTimestamp=2010-08-17 14:13:16.42]
2010-08-18 09:43:06.034 [23895, ELN, ELN]: ERROR - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
    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:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    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:126)
    at chemaxon.jchem.cartridge.rmi.impl.AdminImpl_Stub.registerCacheIds(AdminImpl_Stub.java:118)
    at chemaxon.jchem.cartridge.Indexing.registerCacheIds(Indexing.java:455)
    at chemaxon.jchem.cartridge.Indexing.indexCreate(Indexing.java:329)
    at chemaxon.jchem.cartridge.Indexing.indexCreate(Indexing.java:106)
Caused by: java.rmi.RemoteException: ORA-01031: insufficient privileges
    at chemaxon.jchem.cartridge.rmi.impl.RmiExceptionHandler.handleError(RmiExceptionHandler.java:62)
    at chemaxon.jchem.cartridge.rmi.impl.AdminImpl.registerCacheIds(AdminImpl.java:472)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    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:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)
2010-08-18 09:43:06.035 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: exception=java.rmi.ServerException["RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
"], cause=chemaxon.jchem.cartridge.rmi.StructureFormatException
2010-08-18 09:43:06.035 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: Checking java.rmi.ServerException["RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
"]...
2010-08-18 09:43:06.036 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: Checking java.rmi.RemoteException["ORA-01031: insufficient privileges
"]...
2010-08-18 09:43:06.036 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: exception=java.rmi.ServerException["RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
"], cause=chemaxon.jchem.cartridge.rmi.IllegalOptionException
2010-08-18 09:43:06.036 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: Checking java.rmi.ServerException["RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
"]...
2010-08-18 09:43:06.036 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: Checking java.rmi.RemoteException["ORA-01031: insufficient privileges
"]...
2010-08-18 09:43:06.036 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: exception=java.rmi.ServerException["RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
"], cause=chemaxon.jchem.cartridge.rmi.DuplicateStructureException
2010-08-18 09:43:06.037 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: Checking java.rmi.ServerException["RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
"]...
2010-08-18 09:43:06.037 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: Checking java.rmi.RemoteException["ORA-01031: insufficient privileges
"]...
2010-08-18 09:43:06.037 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: exception=java.rmi.ServerException["RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
"], cause=chemaxon.jchem.cartridge.rmi.JccSecurityException
2010-08-18 09:43:06.037 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: Checking java.rmi.ServerException["RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
"]...
2010-08-18 09:43:06.037 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: Checking java.rmi.RemoteException["ORA-01031: insufficient privileges
"]...
2010-08-18 09:43:06.037 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: exception=java.rmi.ServerException["RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
"], cause=java.lang.IllegalArgumentException
2010-08-18 09:43:06.037 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: Checking java.rmi.ServerException["RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
"]...
2010-08-18 09:43:06.038 [23895, ELN, ELN]: DEBUG - chemaxon.jchem.cartridge.oresident.JavaStoredProcExceptionHandler: Checking java.rmi.RemoteException["ORA-01031: insufficient privileges
"]...
Exception in thread "Root Thread" java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
    java.rmi.RemoteException: ORA-01031: insufficient privileges
    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:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    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:126)
    at chemaxon.jchem.cartridge.rmi.impl.AdminImpl_Stub.registerCacheIds(AdminImpl_Stub.java:118)
    at chemaxon.jchem.cartridge.Indexing.registerCacheIds(Indexing.java:455)
    at chemaxon.jchem.cartridge.Indexing.indexCreate(Indexing.java:329)
    at chemaxon.jchem.cartridge.Indexing.indexCreate(Indexing.java:106)
Caused by: java.rmi.RemoteException: ORA-01031: insufficient privileges
    at chemaxon.jchem.cartridge.rmi.impl.RmiExceptionHandler.handleError(RmiExceptionHandler.java:62)
    at chemaxon.jchem.cartridge.rmi.impl.AdminImpl.registerCacheIds(AdminImpl.java:472)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    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:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:619)


What privilege am I missing ?


Regards,


Micke

User 4140faeba5

18-08-2010 08:24:16

I modified the privileges on the JCHEMPROPERTIES_CR table in the jchem schema to have insert,update,delete privileges to ELN and after that it worked.


I might have missed that in the admin, otherwise please add that.


Regards,


Micke

ChemAxon aa7c50abf8

18-08-2010 14:25:17

Hi Micke,


I might have missed that in the admin, otherwise please add that. 

The situation where the JCHEMPROPERTIES{_CR} table{s} is {are} outside the index creator's schema is not dealt with in the documentation, indeed. I wonder if the documentation for CREATE INDEX wasn't a better place for this information... (An item about this should then also mention that index creators should have privileges on the JCHEMPROPERTIES table as well.) What do you think?


Peter

ChemAxon aa7c50abf8

02-01-2011 19:39:45

This missing piece of information will be added to the documentation for CREATE INDEX starting with JChem 5.4.1.


Peter