Le mar. 7 févr. 2017 à 8:50, Forsell - Erlon <[email protected]>
a écrit :
a lógica é bem simples, como acima não tem erro de codigo senão
aconteceria com muito mais frequencia.
Aí é que você pode se enganar. Bom, primeiro você ainda não disse
exatamente que versão; relatou uma versão principal 9.1, mas como
não sabemos se é nível 9.1.0 ou 9.1.24 (só para pegar os exemplos),
não temos nem como verificar a que defeitos já corrigidos podes estar
sujeito. Certamente deves atualizar para 9.1.24, se já não estiveres
nela, e depois disso resolvido começares a preparar para migrar para o
nível mais recente da 9.6 ou mesmo já da 10.
Outra coisa, erro de código não necessariamente é na transação em
si. Pode ser noutra parte da aplicação. Como o erro é recorrente,
reforço a sugestão do Euler (se não me falha a memória) de auditar
as operações nas tabelas envolvidas, principalmente DELETE. Isso é
algo relativamente fácil de fazer, dá para colocar em produção e
quase certamente apontará o problema.
Por exemplo, por vezes usamos um nível de isolamento relativamente
baixo e, embora não haja erro na transação enquanto mecanismo, nem
na lógica dela mesma, deixamos de perceber que há um erro lógico em
outra transação, afetando aqueles mesmos dados depois dela encerrada.
Embora não seja panacéia, um nível de isolamento mais alto pode
ajudar a pegar esses erros. Como o sistema já está em produção,
não tens esse luxo, mas pode ser um método meio desesperado de testar
fora da produção.
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral