2009-10-26 71 views
1

我们现在在我们的Web应用程序中遇到了由2个或更多用户更新相同内容导致的一系列InvalidItemStateException。据我了解,JackRabbit的设计在这种情况下抛出javax.jcr.InvalidItemStateException并没有问题,但我想问一下处理这种情况的常用方法。我们确信最后一次处理的更改会赢得更新。到目前为止,我们已经提出了下面的代码:在jackrabbit中处理InvalidItemStateException

repeat = false; 
do { 
    try { 

    // Do node update/remove 

    } catch (InvalidItemStateException e) { 
    repeat = true; 
    } 
} while (repeat); 

这是一个常见的模式如何处理这个问题?还是避免这种情况的更好方法?

回答

1

JCR(和Jackrabbit)有一个节点锁定机制,可能更适合这个......对不起,虽然我还没有用它来确定它会解决你的问题。

祝你好运。

0

为了避免InvalidItemStateException,每个线程/用户都应该拥有自己的Session对象。

+0

-1读取java文档中的异常“...通过另一个会话创建” – TedTrippin 2014-03-12 12:09:59