Estudos gratuitos da ER Soluções WebVer outros conteúdos grátis
ER Soluções WebEstudos · Patterns of Enterprise Application Architecture

16.1. Optimistic Offline Lock

Detecta conflito ao gravar comparando a versão.

Ana e Bruno leem versão 1; Ana grava e vira versão 2; a gravação de Bruno com versão 1 é rejeitada
UPDATE … WHERE versao = 1. Zero linhas afetadas = conflito.

Resumo

Perguntas-chave

responda de cabeça, depois abra
Como o conflito é detectado?
O UPDATE inclui a versão lida na cláusula WHERE; se nenhuma linha for afetada, houve conflito.
Quando usar otimista em vez de pessimista?
Quando a chance de conflito é baixa e perder trabalho ocasionalmente é aceitável.
Qual o problema de leitura inconsistente?
Dados só lidos (não gravados) também podem mudar; é preciso checar suas versões se forem relevantes.

Exercícios de fixação

0/5 respondidas
1.
UPDATE cliente SET nome=?, versao=6 WHERE id=10 AND versao=5 afetou 0 linhas. O que significa?
2.
Quando o Optimistic Offline Lock é a melhor escolha?
3.
Qual a desvantagem principal do controle otimista?
4.
Além da versão, que dados Fowler sugere gravar para melhorar a mensagem de conflito?
5.
Uma regra calcula o imposto usando o endereço do cliente, que só é lido. Outro usuário altera o endereço. Qual problema e solução?
Seu progresso fica salvo neste navegador.