1

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

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 に答える