Eai pessoal
Estou analisando um problema e gostaria de ver se alguém tem uma solução melhor para a situação.
Temos uma aplicação JSF onde vários usuários acessam ao mesmo tempo, digamos que duas pessoas entrem no mesmo pedido e façam alterações diferentes, o que está acontecendo é, a alteração de quem clicou primeiro salva no banco, mas logo em seguida a segunda sobrepõe.
Gostaria de algo, tipo, se um usuário abriu algo para alterar, outro usuário, pode apenas visualizar, não pode alterar, até que seja liberado para alteração.
Pensei em fazer algo assim, colocar um flag no pedido como EM ALTERAÇÃO e se alguém tentar abrir para alterar, exibirá a mensagem, usuário tal está alterando, quando esse usuário alterar, retorna o flag para LIBERADO, problema que eu vejo nisso é, se o usuário simplesmente fechar o browser, ele ficará com o acesso do pedido e outra pessoa ficará bloqueada, então pensei em criar algo para um gestor conseguir liberar a alteração caso alguém faça isso.
Vocês já passaram por isso, tem opção melhor?