(resend as text mail)

Dear Julian,
 
I have retried the test case (curl5) for the error I got when inserting a 
previously deleted node on an Oracle 12c EE database.
 
I do get the same java.sql.SQLIntegrityConstraintViolation as initially 
described for Oracle 11g.
See below for the table description / constraint on Oracle 12c.
 
Is there a way we could handle this Exception more gracefully, e.g. by throwing 
a DocumentStoreException ?
 
For the earlier questions:
 
> a) workaround FETCH FIRST as Oracle 11g2 needsRowNumSubquery.
> Oracle 12c implicitly uses the same workaround internally by Query
> Transformation of FETCH FIRST.
> http://oracle-base.com/articles/12c/row-limiting-clause-for-top-n-queries-12cr1.php#query-transformation
 
This patch would allow to support both Oracle 12c and Oracle 11g2 databases.
For me Oracle 12c is still not a common sight, though undeniable it is the 
future.
I can basically live with my small patch on top of OAK-Trunk.
 
> b) MAX_ID_VALUE=";" in NodeDocument triggers a SQL Error on Oracle DB,
> changing to MAX_ID_VALUE="a" as in ClusterNodeInfoDocument.
 
I understand that ";" is an ASCII char just above digits 0-9, IMHO even ":" 
would suffice for this purpose.

Can someone explain the reasoning behind MAX_ID_VALUE="a" in 
ClusterNodeInfoDocument for my own curiosity ?

BTW, I can not reproduce the SQL Error I got initially, which was probably 
introduced by a couple of conflicting patches.

 > c) add Oak-RDB to server in oak-run Main
> adding rdbjdbcuri, rdbjdbcuser and rdbjdbcpassword as OptionalArgs

This has been solved by your update in OAK 1.1.6, thanks!
 
Kind regards,
Stefan
 

15:19:19.940 [qtp141373610-14] DEBUG o.a.j.o.p.d.rdb.RDBDocumentStore - insert 
of [1:/test] failed
java.sql.SQLIntegrityConstraintViolationException: ORA-00001: unique constraint 
(OAK.SYS_C009999) violated
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:439) 
~[ojdbc6.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:395) 
~[ojdbc6.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4C8Oall.processError(T4C8Oall.java:802) 
~[ojdbc6.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CTTIfun.receive(T4CTTIfun.java:436) 
~[ojdbc6.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4CTTIfun.doRPC(T4CTTIfun.java:186) 
~[ojdbc6.jar:11.2.0.1.0]
    at oracle.jdbc.driver.T4C8Oall.doOALL(T4C8Oall.java:521) 
~[ojdbc6.jar:11.2.0.1.0]
    at 
oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:205) 
~[ojdbc6.jar:11.2.0.1.0]
    at 
oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:1008)
 ~[ojdbc6.jar:11.2.0.1.0]
    at 
oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1307)
 ~[ojdbc6.jar:11.2.0.1.0]
    at 
oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3449)
 ~[ojdbc6.jar:11.2.0.1.0]
    at 
oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(OraclePreparedStatement.java:3530)
 ~[ojdbc6.jar:11.2.0.1.0]
    at 
oracle.jdbc.driver.OraclePreparedStatementWrapper.executeUpdate(OraclePreparedStatementWrapper.java:1350)
 ~[ojdbc6.jar:11.2.0.1.0]
    at 
org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
 ~[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.commons.dbcp.DelegatingPreparedStatement.executeUpdate(DelegatingPreparedStatement.java:105)
 ~[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.dbInsert(RDBDocumentStore.java:1410)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.insertDocuments(RDBDocumentStore.java:1069)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.internalCreate(RDBDocumentStore.java:676)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.rdb.RDBDocumentStore.create(RDBDocumentStore.java:243)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.Commit.applyToDocumentStore(Commit.java:321)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.Commit.applyToDocumentStore(Commit.java:246)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.Commit.applyInternal(Commit.java:215)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at org.apache.jackrabbit.oak.plugins.document.Commit.apply(Commit.java:200) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:308)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.persist(DocumentNodeStoreBranch.java:278)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.access$200(DocumentNodeStoreBranch.java:51)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch$InMemory.merge(DocumentNodeStoreBranch.java:518)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge0(DocumentNodeStoreBranch.java:231)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStoreBranch.merge(DocumentNodeStoreBranch.java:169)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.DocumentRootBuilder.merge(DocumentRootBuilder.java:159)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.apache.jackrabbit.oak.plugins.document.DocumentNodeStore.merge(DocumentNodeStore.java:1335)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:245) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:256) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at org.apache.jackrabbit.oak.http.OakServlet.doPost(OakServlet.java:154) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:755) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at org.apache.jackrabbit.oak.http.OakServlet.service(OakServlet.java:107) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:848) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:594) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:486) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:413) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at org.eclipse.jetty.server.Server.handle(Server.java:368) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:489)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:953)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:1014)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:861) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:628)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
 [oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at 
org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543) 
[oak-run-1.1-SNAPSHOT.jar:1.1-SNAPSHOT]
    at java.lang.Thread.run(Thread.java:745) [na:1.7.0_60]
15:19:19.957 [qtp141373610-14] DEBUG o.a.j.o.plugins.document.CommitQueue - 
removed r14b9d0eadf6-0-1, head is now null
 
 

desc OAK.NODES;
Name        Null     Type           
----------- -------- --------------
ID          NOT NULL VARCHAR2(512)  
MODIFIED             NUMBER         
HASBINARY            NUMBER         
DELETEDONCE          NUMBER         
MODCOUNT             NUMBER         
CMODCOUNT            NUMBER         
DSIZE                NUMBER         
DATA                 VARCHAR2(4000)
BDATA                BLOB           
 
SELECT * FROM user_constraints WHERE table_name = 'NODES';
OWNER                                                                           
                                                 CONSTRAINT_NAME                
                                                                                
                  CONSTRAINT_TYPE TABLE_NAME                                    
                                                                                
   SEARCH_CONDITION                                                             
    SEARCH_CONDITION_VC                                                         
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
     R_OWNER                                                                    
                                                      R_CONSTRAINT_NAME         
                                                                                
                       DELETE_RULE STATUS   DEFERRABLE     DEFERRED  VALIDATED  
   GENERATED      BAD RELY LAST_CHANGE INDEX_OWNER                              
                                                                                
        INDEX_NAME                                                              
                                                         INVALID VIEW_RELATED   
ORIGIN_CON_ID
--------------------------------------------------------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------------------------------------------------------
 --------------- 
--------------------------------------------------------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------
 
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------------------------------------------------------
 ----------- -------- -------------- --------- ------------- -------------- --- 
---- ----------- 
--------------------------------------------------------------------------------------------------------------------------------
 
--------------------------------------------------------------------------------------------------------------------------------
 ------- -------------- -------------
OAK                                                                             
                                                 SYS_C009998                    
                                                                                
                  C               NODES                                         
                                                                                
   "ID" IS NOT NULL                                                             
    "ID" IS NOT NULL                                                            
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                   ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED  
   GENERATED NAME          18-FEB-15                                            
                                                                                
                                                                                
                                                                                
            0
OAK                                                                             
                                                 SYS_C009999                    
                                                                                
                  P               NODES                                         
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                   ENABLED  NOT DEFERRABLE IMMEDIATE VALIDATED  
   GENERATED NAME          18-FEB-15   OAK                                      
                                                                                
        SYS_C009999                                                             
                                                                                
            0
 
 
 

Gesendet: Mittwoch, 28. Januar 2015 um 09:38 Uhr
Von: "Julian Reschke" <[email protected]>
An: "Stefan Thieme" <[email protected]>
Betreff: Re: [PATCH] [OAK-1914] RDB: Oracle support
On 2015-01-28 09:34, Stefan Thieme wrote:
> Dear Julian,
> I have been unable to commit to the Jackrabbit OAK Repository myself.
> You are assigned the "[OAK-1914] RDB: Oracle support" hence I am sending
> you this patch.
> I am glad to receive your reply for any comments or feedback.
> Kind regards,
> Stefan Thieme
> ---
> OAK-1914 Oak-RDB for Oracle 11g2

I don't believe we want to support Oracle 11 if it complicates things.

If you disagree please let's have that discussion on the oak-dev mailing
list.

> a) workaround FETCH FIRST as Oracle 11g2 needsRowNumSubquery.
> Oracle 12c implicitly uses the same workaround internally by Query
> Transformation of FETCH FIRST.
> http://oracle-base.com/articles/12c/row-limiting-clause-for-top-n-queries-12cr1.php#query-transformation[http://oracle-base.com/articles/12c/row-limiting-clause-for-top-n-queries-12cr1.php#query-transformation]
> b) MAX_ID_VALUE=";" in NodeDocument triggers a SQL Error on Oracle DB,
> changing to MAX_ID_VALUE="a" as in ClusterNodeInfoDocument.
> c) add Oak-RDB to server in oak-run Main
> adding rdbjdbcuri, rdbjdbcuser and rdbjdbcpassword as OptionalArgs

Could you be more specific about what the problem is? I'm already using
oak-run with RDB, so I'm not sure...

 

Reply via email to