Hi all,
I noticed that under particular conditions, saving data to repository is not
rolled back if there's an error saving revision on cluster journal.

Case is:

1. A db used as repository - DB01
2. A db used as journal - DB02
3. DB02 has lost connection, DB01 work correctly
4. Data saved correctly in DB1, but new revision is not saved. No
rollback/exception is generated so, data in repository is updated, but not
every cluster can update its indexes because of missing revision...

I think system have to generated en error saved node data if no revision is
created...

What do you think about? Version used is JR 1.3.1 patched with JCR-905
(duplicated nodes in cluster indexes). Is that a problem fixed in a newer
version 1.3.3/1.4.x?

Thanks a lot.
BR.

Here's a log:

09:57:44,327 ERROR ClusterNode:277 - Periodic sync of journal failed: Unable
to return record iterater.
09:57:46,124  INFO CacheManager:125 - resizeAll size=52
09:57:48,504  INFO CacheManager:125 - resizeAll size=52
09:57:48,512 ERROR ClusterNode:554 - Unable to create log entry.
org.apache.jackrabbit.core.journal.JournalException: Unable to set
autocommit to false.
        at
org.apache.jackrabbit.core.journal.DatabaseJournal.doLock(DatabaseJournal.java:227)
        at
org.apache.jackrabbit.core.journal.AbstractJournal.lockAndSync(AbstractJournal.java:238)
        at
org.apache.jackrabbit.core.journal.DefaultRecordProducer.append(DefaultRecordProducer.java:51)
        at
org.apache.jackrabbit.core.cluster.ClusterNode$WorkspaceUpdateChannel.updateCreated(ClusterNode.java:550)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager$Update.begin(SharedItemStateManager.java:530)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager.beginUpdate(SharedItemStateManager.java:825)
        at
org.apache.jackrabbit.core.state.SharedItemStateManager.update(SharedItemStateManager.java:855)
        at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:326)
        at
org.apache.jackrabbit.core.state.XAItemStateManager.update(XAItemStateManager.java:313)
        at
org.apache.jackrabbit.core.state.LocalItemStateManager.update(LocalItemStateManager.java:302)
        at
org.apache.jackrabbit.core.state.SessionItemStateManager.update(SessionItemStateManager.java:306)
        at org.apache.jackrabbit.core.ItemImpl.save(ItemImpl.java:1214)
        at org.apache.jackrabbit.core.SessionImpl.save(SessionImpl.java:849)
        at
org.apache.jackrabbit.jca.JCASessionHandle.save(JCASessionHandle.java:178)
        at org_apache_jackrabbit_jca_JCASessionHandle_Proxy.save()
        at repository.CMSMenuPage.update(CMSMenuPage.java:222)
        at admin.ManageCMSMenuPageImpl.update(ManageCMSMenuPageImpl.java:208)
        at
admin.ManageCMSMenuPageImpl.performExecute(ManageCMSMenuPageImpl.java:30)
        at core.AdminController.processRequest(AdminController.java:117)
        at core.WebController.doPost(WebController.java:62)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
        at
com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:711)
        at
com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:368)
        at
com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:866)
        at
com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:448)
        at
com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:302)
        at
com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:190)
        at
oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260)
        at
com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303)
        at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Closed Connection
        at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:138)
        at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:175)
        at
oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:240)
        at
oracle.jdbc.driver.PhysicalConnection.setAutoCommit(PhysicalConnection.java:1166)
        at
org.apache.jackrabbit.core.journal.DatabaseJournal.doLock(DatabaseJournal.java:224)
        ... 30 more
09:57:48,521  WARN ClusterNode:572 - No record created.
09:57:48,873  WARN ClusterNode:610 - No record prepared.
09:57:49,337 ERROR ClusterNode:277 - Periodic sync of journal failed: Unable
to return record iterater.
09:57:49,511  INFO CacheManager:125 - resizeAll size=52
09:57:54,347 ERROR ClusterNode:277 - Periodic sync of journal failed: Unable
to return record iterater.
09:57:59,357 ERROR ClusterNode:277 - Periodic sync of journal failed: Unable
to return record iterater.
09:58:04,367 ERROR ClusterNode:277 - Periodic sync of journal failed: Unable
to return record iterater.




-- 
View this message in context: 
http://www.nabble.com/Cluster-journal-reconnection-rollback-issue-tp15183100p15183100.html
Sent from the Jackrabbit - Users mailing list archive at Nabble.com.

Reply via email to