Controle de concorrencia - Lock otimista - Hibernate

1 resposta
PePeLeGaL

Pessoal,

No lock pessimista, uma transacao atualizando um dado bloqueia este dado e só o libera apos a completa atualizacao.

No lock otimista, o dado nao é bloqueado, mas se outra transacao tentar atualizar o mesmo dado, ocorrerá um erro de violacao de concorrencia.

Estou certo nas colocacoes acima?

Mas, no caso do lock otimista, esse erro é explicito ou a segunda transacao que provocou o erro de violacao de concorrencia fica aguardando?

É que utilizei a estrategia abaixo nos POJOs - Tabelas que sofrem update durante a transacao e nao tenho certeza se tudo funcionará legalzinho em caso de concorrencia:

//Atributo utilizado para o versionamento e inserido no POJO (Plain Old Java Object)

@Version

@Column(name = versao)

private int versao;

Agradeço quem puder opinar.

1 Resposta

S

PePeLeGaL:
Pessoal,

No lock pessimista, uma transacao atualizando um dado bloqueia este dado e só o libera apos a completa atualizacao.

No lock otimista, o dado nao é bloqueado, mas se outra transacao tentar atualizar o mesmo dado, ocorrerá um erro de violacao de concorrencia.

Estou certo nas colocacoes acima?

PePeLeGaL suas afirmações sobre lockotimista e pessimista estão corretas. só não ficou claro sua duvida, pode por favor reformular?

Criado 1 de agosto de 2011
Ultima resposta 27 de mai. de 2013
Respostas 1
Participantes 2