Pergunta

Estamos experimentando agora uma série de InvalidItemStateException em nossa aplicação web causado por 2 ou mais usuários atualizando o mesmo conteúdo. Tanto quanto eu entendi, é em design de JackRabbit para jogar javax.jcr.InvalidItemStateException em tal situação e isso é ok, mas eu queria perguntar sobre a maneira comum de lidar com isso. Estamos bastante ok que a última alteração processada ganha a atualização. Até agora, temos vir para cima com o seguinte código:

repeat = false;
do {
  try {

     // Do node update/remove

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

Este é um padrão comum como lidar com isso? Ou é a melhor maneira de evitar tais situações?

Foi útil?

Solução

JCR (e Jackrabbit) tem um mecanismo de bloqueio nó que pode ser mais adequado para este ... desculpe, embora eu não usei ainda ter certeza de que ele iria resolver o seu problema.

Boa sorte.

Outras dicas

Para evitar InvalidItemStateException cada thread / usuário deve ter é objeto Session próprio.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top