Pregunta

Ahora estamos experimentando una cantidad de InvalidItemStateException en nuestra aplicación web causada por 2 o más usuarios que actualizan el mismo contenido. Por lo que entendí, está en el diseño de JackRabbit lanzar javax.jcr.InvalidItemStateException en esa situación y está bien, pero quería preguntar sobre la forma común de manejar eso. Estamos bastante bien de que el último cambio procesado gane la actualización. Hasta ahora hemos llegado con el siguiente código:

repeat = false;
do {
  try {

     // Do node update/remove

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

¿Es este un patrón común de cómo manejar eso? ¿O es una mejor manera de evitar tales situaciones?

¿Fue útil?

Solución

JCR (y Jackrabbit) tiene un mecanismo de bloqueo de nodos que puede ser más adecuado para esto ... lo siento, aunque aún no lo he usado para estar seguro de que resolvería tu problema.

Buena suerte.

Otros consejos

Para evitar la excepción InvalidItemStateException, cada hilo / usuario debe tener su propio objeto Session.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top