[
https://issues.apache.org/jira/browse/JCR-3221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13195164#comment-13195164
]
Rohit Nijhawan commented on JCR-3221:
-------------------------------------
I've been at it for 10 full days and have looked at the code very meticulously.
Even against derby (Remember, there are no unique constraint indexes on the
derby ddl), we get the insertion of this data multiple times.
deadbeef-cafe-babe-cafe-babecafebabe
Against oracle, it croaks immediately. I have run it against totally clean
oracle database instances. And i have only ever run 1 copy of jackrabbit. I
started it from sling. The fact that jackrabbit persistence instructions are
not right doesn't help the matter either. Please see:
https://issues.apache.org/jira/browse/SLING-2384
I was able to fix my issue by patching the jar with this code
In: BundleDbPersistenceManager.storeBundle(NodePropBundle bundle)
String sql = isNewBundle(bundle.getId()) ? bundleInsertSQL : bundleUpdateSQL;
and with this method
private synchronized boolean isNewBundle(NodeId id) throws
ItemStateException {
ResultSet rs = null;
try {
rs = conHelper.exec(bundleSelectSQL, getKey(id), false, 0);
if (!rs.next()) {
return true;
}
return false;
} catch (Exception e) {
String msg = "Bundle discovery error for: " + id + ": " + e;
log.error(msg);
throw new ItemStateException(msg, e);
} finally {
DbUtility.close(rs);
}
}
Now everything is working except after uploading I don't see my content node in
the repository browser, but i can download my uploaded content with a full url
path. I had to set the datastore to db as well
Thanks
> Jackrabbit in Sling won't bootstrap against oracle
> --------------------------------------------------
>
> Key: JCR-3221
> URL: https://issues.apache.org/jira/browse/JCR-3221
> Project: Jackrabbit Content Repository
> Issue Type: Test
> Components: config
> Affects Versions: 2.2.10
> Environment: Windows 7, Java JRE 1.6.0_29
> Reporter: Rohit Nijhawan
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> 1. Trying to use jackrabbit persistence config to Oracle under Sling
> 2. Trying to run the jackrabbit standalone server against Oracle
> in Sling, seeing this error repeatedly. If I run a DELETE FROM
> JCR_DEFAULT_BUNDLE, the server starts up in sling but only 28/75 bundles are
> active and only 101/152 services launch after all the bundles are manually
> made active by pressing the |>| play button beside them.
> AuthenticationSupport service never runs. I can log in but not upload content.
> And in the the jackrabbit standalone server, if I delete from
> JCR_DEFAULT_BUNDLE, the server never starts up fully. It stays at Starting
> the server...
> I have tried both: the pool.OraclePersistenceManager and
> bundle.OraclePersistenceManager classes. I've seen similar issues with
> 'writing the bundle' error but not one that was enforced on a unique
> constraint from an index.
> 2012-01-26 10:32:14.533 ERROR [main] BundleDbPersistenceManager.java:1108
> FATAL error while writing the bundle: deadbeef-cafe-babe-cafe-babecafebabe
> java.sql.SQLException: ORA-00001: unique constraint
> (MIC_COMMON_SB.JCR_DEFAULT_BUNDLE_IDX) violated
> at
> oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:113)
> ~[na:Oracle JDBC Driver version - "10.2.0.5.0"]
> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
> ~[na:Oracle JDBC Driver version - "10.2.0.5.0"]
> at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
> ~[na:Oracle JDBC Driver version - "10.2.0.5.0"]
> at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:754) ~[na:Oracle
> JDBC Driver version - "10.2.0.5.0"]
> at
> oracle.jdbc.driver.T4CPreparedStatement.doOall8(T4CPreparedStatement.java:219)
> ~[na:Oracle JDBC Driver version - "10.2.0.5.0"]
> at
> oracle.jdbc.driver.T4CPreparedStatement.executeForRows(T4CPreparedStatement.java:972)
> ~[na:Oracle JDBC Driver version - "10.2.0.5.0"]
> at
> oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1192)
> ~[na:Oracle JDBC Driver version - "10.2.0.5.0"]
> at
> oracle.jdbc.driver.OraclePreparedStatement.executeInternal(OraclePreparedStatement.java:3415)
> ~[na:Oracle JDBC Driver version - "10.2.0.5.0"]
> at
> oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePreparedStatement.java:3521)
> ~[na:Oracle JDBC Driver version - "10.2.0.5.0"]
> at
> org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169)
> ~[jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169)
> ~[jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.util.db.ConnectionHelper.execute(ConnectionHelper.java:474)
> ~[jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.util.db.ConnectionHelper.reallyUpdate(ConnectionHelper.java:335)
> ~[jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.util.db.ConnectionHelper$2.call(ConnectionHelper.java:323)
> ~[jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.util.db.ConnectionHelper$2.call(ConnectionHelper.java:319)
> ~[jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.util.db.ConnectionHelper$RetryManager.doTry(ConnectionHelper.java:487)
> ~[jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.util.db.ConnectionHelper.update(ConnectionHelper.java:319)
> ~[jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.storeBundle(BundleDbPersistenceManager.java:1095)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.putBundle(AbstractBundlePersistenceManager.java:699)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.storeInternal(AbstractBundlePersistenceManager.java:641)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.persistence.bundle.AbstractBundlePersistenceManager.store(AbstractBundlePersistenceManager.java:518)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.persistence.pool.BundleDbPersistenceManager.store(BundleDbPersistenceManager.java:479)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager.createRootNodeState(SharedItemStateManager.java:1679)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.state.SharedItemStateManager.<init>(SharedItemStateManager.java:212)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.RepositoryImpl.createItemStateManager(RepositoryImpl.java:1379)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.doInitialize(RepositoryImpl.java:2025)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.RepositoryImpl$WorkspaceInfo.initialize(RepositoryImpl.java:1998)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.RepositoryImpl.initStartupWorkspaces(RepositoryImpl.java:533)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.RepositoryImpl.<init>(RepositoryImpl.java:342)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.core.RepositoryImpl.create(RepositoryImpl.java:605)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.apache.jackrabbit.servlet.jackrabbit.JackrabbitRepositoryServlet.init(JackrabbitRepositoryServlet.java:103)
> [jackrabbit-standalone-2.2.10.jar:na]
> at javax.servlet.GenericServlet.init(GenericServlet.java:241)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:440)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.jetty.servlet.ServletHolder.doStart(ServletHolder.java:263)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.jetty.servlet.ServletHandler.initialize(ServletHandler.java:685)
> [jackrabbit-standalone-2.2.10.jar:na]
> at org.mortbay.jetty.servlet.Context.startContext(Context.java:140)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.jetty.handler.RequestLogHandler.doStart(RequestLogHandler.java:115)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
> [jackrabbit-standalone-2.2.10.jar:na]
> at org.mortbay.jetty.Server.doStart(Server.java:224)
> [jackrabbit-standalone-2.2.10.jar:na]
> at
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
> [jackrabbit-standalone-2.2.10.jar:na]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira