質問

同じコンテンツを更新している2人以上のユーザーが原因で、Webアプリケーションで多数のInvalidItemStateExceptionが発生しています。私が理解している限り、このような状況で javax.jcr.InvalidItemStateException をスローすることはJackRabbitの設計上であり、それで問題ありませんが、それを処理する一般的な方法について尋ねたいと思いました。最後に処理された変更が更新に勝っても大丈夫です。これまでのところ、次のコードを作成しました。

repeat = false;
do {
  try {

     // Do node update/remove

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

これは一般的なパターンですか?それとも、そのような状況を回避するより良い方法ですか?

役に立ちましたか?

解決

JCR(およびJackrabbit)には、これに適したノードロックメカニズムがあります。申し訳ありませんが、問題を解決できるかどうかはまだ確認していません。

がんばって。

他のヒント

InvalidItemStateExceptionを回避するには、すべてのスレッド/ユーザーが独自のSessionオブジェクトを持つ必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top