Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 37207 invoked from network); 21 Oct 2008 09:44:36 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 21 Oct 2008 09:44:36 -0000 Received: (qmail 29164 invoked by uid 500); 21 Oct 2008 09:44:38 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 29117 invoked by uid 500); 21 Oct 2008 09:44:37 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 29106 invoked by uid 99); 21 Oct 2008 09:44:37 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Oct 2008 02:44:37 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.140] (HELO brutus.apache.org) (140.211.11.140) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 21 Oct 2008 09:43:35 +0000 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 7AD94234C228 for ; Tue, 21 Oct 2008 02:43:44 -0700 (PDT) Message-ID: <1961179078.1224582224502.JavaMail.jira@brutus> Date: Tue, 21 Oct 2008 02:43:44 -0700 (PDT) From: "Przemo Pakulski (JIRA)" To: dev@jackrabbit.apache.org Subject: [jira] Commented: (JCR-1775) Transaction-safe versioning In-Reply-To: <1648924548.1222430504501.JavaMail.jira@brutus> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JCR-1775?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12641319#action_12641319 ] Przemo Pakulski commented on JCR-1775: -------------------------------------- I've created custom PM by simply overriding one method, to be able to track the sequence of stored changes : public synchronized void store(ChangeLog changeLog) throws ItemStateException { super.store(changeLog); log.warn("STORE :" + getSchemaObjectPrefix() + ": " + changeLog); } Then I run checkout/checkin operation on single node : 1) without transaction checkout 11:12:17 WARN STORE :D1V1R2_: {#addedStates=0, #modifiedStates=2, #deletedStates=0, #modifiedRefs=0} 11:12:17 WARN STORE :VERSION_: {#addedStates=0, #modifiedStates=0, #deletedStates=0, #modifiedRefs=1} checkin 11:12:17 WARN STORE :VERSION_: {#addedStates=13, #modifiedStates=3, #deletedStates=0, #modifiedRefs=0} 11:12:17 WARN STORE :D1V1R2_: {#addedStates=0, #modifiedStates=3, #deletedStates=0, #modifiedRefs=0} 11:12:17 WARN STORE :VERSION_: {#addedStates=0, #modifiedStates=0, #deletedStates=0, #modifiedRefs=1} 11:12:17 WARN STORE :VERSION_: {#addedStates=0, #modifiedStates=0, #deletedStates=0, #modifiedRefs=1} 2) checkout/checkin in transaction 11:13:57 WARN STORE :D1V1R2_: {#addedStates=0, #modifiedStates=3, #deletedStates=0, #modifiedRefs=0} 11:13:57 WARN STORE :VERSION_: {#addedStates=0, #modifiedStates=0, #deletedStates=0, #modifiedRefs=1} 11:13:57 WARN STORE :VERSION_: {#addedStates=13, #modifiedStates=3, #deletedStates=0, #modifiedRefs=1} Checkout/checkin in single JCR transaction still consist of 3 database level transactions, Moreover when using transaction changes in version storage are persisted first before storing changes in the workspace. This is probably because of order of txResources in XASessionImpl class as described in JCR-631. > Transaction-safe versioning > --------------------------- > > Key: JCR-1775 > URL: https://issues.apache.org/jira/browse/JCR-1775 > Project: Jackrabbit > Issue Type: Improvement > Components: jackrabbit-core, transactions, versioning > Reporter: Jukka Zitting > Assignee: Jukka Zitting > Fix For: 1.5.0 > > > I've been working on a partial fix to JCR-630. Instead of implementing fully transactional versioning (i.e. a checkin will disappear when a transactin is rolled back), I'm ensuring that all versioning operations within a transaction will leave the version store in a consistent state even if the transaction otherwise fails at any point. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.