Como controlar a concorrencia de alteração de registros nos servlets?
Tentei usar batimento de Datas mas não obtido resultados, sendo atualizado apenas a primeira requisão!
Qdo vários usuários requisitam o update simultaneamente apenas um consegue atualizar com sucesso!
Alguem já passou por este problema? Tem solução?
eu nao entendi exatamente o q você quer atualizar…
mas em programação com threads que utlizam mesmos metodos ou objetos… devemos sincronizar o acesso…
digamos que voce tenha funcao atualizaBanco(Conexao conn)
essa funcao pode ser chamado por mais de uma thread ao mesmo tempo, causando problemas, entao declaramos ela assim:
public synchronized atualizaBanco(Conexao conn) { … }
synchronized: faz com que apenas uma thread acesse a funcao…, se 2 ou mais chegarem ao mesmo tempo, 1 executa, as outras esperam…
voce tbm pode sincronicar apenas um trecho codigo:
Array arr = new Array();
synchronized(arr) {
// codigo com o objeto Array
}
era isso que você tinha dúvida???
claudio
Se vc estivesse usando EntityBean isso era automatico!
Como nao eh esse o caso de uma olhada nos docs do seu banco como esta configurado o lock de registros (Pessimista, Otimista, por pagina etc) ai vc pode tentar se utilizar disso para controlar o acesso concorrente.