16.2. Pessimistic Offline Lock
Bloqueia o dado antes de editar; só um por vez.
Resumo
- Previne conflitos permitindo que só uma transação de negócio acesse o dado por vez.
- Tipos: exclusivo de escrita, exclusivo de leitura, leitura/escrita (vários leitores ou um escritor).
- Gerenciador de bloqueios em tabela do banco ou em memória (singleton), com dono = sessão.
- Protocolo: o que bloquear, quando, quando liberar, o que fazer se não conseguir. Timeout para sessões abandonadas.
- Use quando conflitos são frequentes ou caros. Complementa o otimista, não o substitui.
Perguntas-chave
responda de cabeça, depois abraQuais os tipos de bloqueio pessimista?
Exclusivo de escrita, exclusivo de leitura e leitura/escrita.
Onde fica o gerenciador de bloqueios?
Em uma tabela do banco (preferível em cluster) ou em memória, como singleton.
O que fazer com bloqueios de sessões abandonadas?
Usar timeout e liberar os bloqueios quando a sessão expira.
Exercícios de fixação
0/5 respondidas1.
Analistas passam 2 horas revisando um processo e o sistema não pode permitir que outro analista mexa nele ao mesmo tempo. Qual padrão?
2.
Qual tipo de bloqueio permite vários leitores ao mesmo tempo, mas só um escritor?
3.
Em um cluster, onde é mais seguro guardar a tabela de bloqueios?
4.
Um usuário pegou o bloqueio e fechou o navegador. O que o protocolo deve prever?
5.
Qual a principal desvantagem do Pessimistic Offline Lock?