Fala, galera.
Seguinte, eu tô com uma situação que tá meio chata de resolver, mas o meu feeling (de iniciante haha) me levou a essa dúvida dos locks.
A situação é a seguinte (copiado de um e-mail que mandei pra um amigo):
no programa, eu tenho o lançamento de despesas e receitas e transferências.
ok. tá tudo certo com a lógica das operações, mas às vezes a conta bancária não é atualizada.exemplo: eu tenho 1000 reais na “BR” e insiro uma saída de 500.
a conta “BR” deve ficar com 500. o problema é que às vezes o banco não atualiza a conta. é quase que aleatoriamente (embora eu saiba que há algo errado).outro dia, tavam fazendo lançamentos e eu tava acompanhando as contas. tudo corria bem e de repente, deu uma diferença.
aí, como eu sabia que o código estava certo, resolvi aguardar. e depois de uns 2 minutos, o banco atualizou as contas.será algo do postgres?
já fiz inúmeros testes aqui, inclusive tentando gerar excessões antes de fazer as operações, mas nada…
Esse amigo acha que é um caso de condição de corrida e me passou links sobre optimistic lock e pessimistic lock. Estou lendo sobre eles agora, e tentando aplicá-los corretamente.
Porém, eu quero ver outras opiniões.
PS: É um sistema desktop, então acho que é uma situação mais fácil de ser resolvida.
abraço!