Concorrencia na alterção de registros!

2 respostas
thiagorani

E ae pessoal,

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?

[]´s

2 Respostas

maxguzenski

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.

Abraco,

Criado 9 de maio de 2003
Ultima resposta 12 de mai. de 2003
Respostas 2
Participantes 3