jackrabbitでInvalidItemStateExceptionを処理する
-
06-07-2019 - |
質問
同じコンテンツを更新している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オブジェクトを持つ必要があります。
所属していません StackOverflow