Domanda

Ora stiamo riscontrando un numero di InvalidItemStateException nella nostra applicazione Web causato da 2 o più utenti che aggiornano lo stesso contenuto. Per quanto ho capito, è nella progettazione di JackRabbit lanciare javax.jcr.InvalidItemStateException in tale situazione e va bene, ma volevo chiedere il modo comune di gestirlo. Siamo abbastanza d'accordo sul fatto che l'ultima modifica elaborata vince l'aggiornamento. Finora abbiamo trovato il seguente codice:

repeat = false;
do {
  try {

     // Do node update/remove

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

È uno schema comune come gestirlo? O è un modo migliore per evitare tali situazioni?

È stato utile?

Soluzione

JCR (e Jackrabbit) ha un meccanismo di blocco dei nodi che potrebbe essere più adatto a questo ... scusa, anche se non l'ho ancora usato per essere sicuro che risolverà il tuo problema.

Buona fortuna.

Altri suggerimenti

Per evitare InvalidItemStateException ogni thread / utente dovrebbe avere il proprio oggetto Session.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top