代码之家  ›  专栏  ›  技术社区  ›  Andrey Adamovich

处理jackrabbit中的invaliditemstateException

  •  1
  • Andrey Adamovich  · 技术社区  · 15 年前

    由于两个或多个用户更新了同一内容,我们的Web应用程序中出现了许多invaliditemstateException。据我所知,这是在设计家兔投掷 javax.jcr.InvalidItemStateException 在这种情况下,这没关系,但我想问一下处理这件事的常见方法。最后一次处理的更改会赢得更新,这是相当好的。到目前为止,我们提出了以下代码:

    repeat = false;
    do {
      try {
    
         // Do node update/remove
    
      } catch (InvalidItemStateException e) {
        repeat = true;
      }
    } while (repeat);
    

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

    2 回复  |  直到 15 年前
        1
  •  1
  •   cjstehno    15 年前

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

    祝你好运。

        2
  •  0
  •   Waverick    15 年前

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