1

我们现在在我们的 Web 应用程序中遇到了一些 InvalidItemStateException,这是由 2 个或更多用户更新相同的内容引起的。据我了解,javax.jcr.InvalidItemStateException在这种情况下抛出 JackRabbit 是在设计中,这没关系,但我想问一下处理这种情况的常用方法。我们相当确定最后处理的更改赢得更新。到目前为止,我们已经提出了以下代码:

repeat = false;
do {
  try {

     // Do node update/remove

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

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

4

2 回答 2

1

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

祝你好运。

于 2009-10-27T20:55:00.303 回答
0

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

于 2009-11-09T11:01:36.980 回答