InvalidItemStateException alça em jackrabbit
-
06-07-2019 - |
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?
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.