Frage

Wir erleben jetzt eine Reihe von InvalidItemStateException in unserer Web-Anwendung, die durch zwei oder mehr Benutzer den gleichen Inhalt zu aktualisieren. Soweit ich verstanden ist es im Design von Jackrabbit javax.jcr.InvalidItemStateException in einer solchen Situation zu werfen und das ist in Ordnung, aber ich wollte über den gemeinsamen Weg bitten, das zu handhaben. Wir sind ziemlich ok, dass die letzte verarbeitete Änderung des Updates gewinnt. Bisher haben wir mit dem folgenden Code kommen:

repeat = false;
do {
  try {

     // Do node update/remove

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

Ist das ein gemeinsames Muster, wie das zu handhaben? Oder ist es ein besserer Weg, um solche Situationen zu vermeiden?

War es hilfreich?

Lösung

JCR (und Hase) hat einen Knoten Verriegelungsmechanismus, der besser dafür geeignet sein kann ... sorry, wenn ich es noch nicht verwendet habe, um sicher zu sein, dass es Ihr Problem lösen würde.

Viel Glück.

Andere Tipps

Um InvalidItemStateException jeden Thread / Anwender zu vermeiden, sollte über ein eigenes Session-Objekt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top