Bom dia, estou migrando minha aplicação que utiliza duas base de dados
postgresql 9.2 e ao realizar transações nas duas bases o rollback deixou
de funcionar, segue abaixo o log:

[4-1] id:0 LOG:  execute S_1: BEGIN
[5-1] id:0 ERROR:  value too long for type character varying(60)

Este erro causou o rollback da sua transação, provavelmente.

[6-1] id:0 STATEMENT:  INSERT INTO Cidade (nome) VALUES ($1) returning
codigo

Esta foi a linha da transação que causou o erro.

[7-1] id:181376 LOG:  execute <unnamed>: PREPARE TRANSACTION
'4871251_AgAAAF42gdhhbGVzc2FuZHJvLXBjLHNlcnZlcixQMTAw_YWxlc3NhbmRyby1wYyxzZXJ2ZXIsUDEwMCwA'
[7-1] id:0 LOG:  execute <unnamed>: PREPARE TRANSACTION
'4871251_AgAAAF42gdhhbGVzc2FuZHJvLXBjLHNlcnZlcixQMTAw_YWxlc3NhbmRyby1wYyxzZXJ2ZXIsUDEwMCwB'
[8-1] id:0 LOG:  execute <unnamed>: COMMIT PREPARED
'4871251_AgAAAF42gdhhbGVzc2FuZHJvLXBjLHNlcnZlcixQMTAw_YWxlc3NhbmRyby1wYyxzZXJ2ZXIsUDEwMCwA'
[8-1] id:0 LOG:  execute <unnamed>: COMMIT PREPARED
'4871251_AgAAAF42gdhhbGVzc2FuZHJvLXBjLHNlcnZlcixQMTAw_YWxlc3NhbmRyby1wYyxzZXJ2ZXIsUDEwMCwB'
[9-1] id:0 ERROR:  prepared transaction with identifier
"4871251_AgAAAF42gdhhbGVzc2FuZHJvLXBjLHNlcnZlcixQMTAw_YWxlc3NhbmRyby1wYyxzZXJ2ZXIsUDEwMCwB"
does not exist
[10-1] id:0 STATEMENT:  COMMIT PREPARED
'4871251_AgAAAF42gdhhbGVzc2FuZHJvLXBjLHNlcnZlcixQMTAw_YWxlc3NhbmRyby1wYyxzZXJ2ZXIsUDEwMCwB'

Não entendi. Sua pergunta foi "O rollback deixou de funcionar" mas na verdade o que ocorreu foi que a transação não foi comitada em um de seus bancos de dados devido ao erro no insert em que o parâmetro $1 provavelmente era de comprimento maior que os 60 caracteres permitidos na hora em que a tabela foi criada.

Você tem que tratar o erro (houve rollback causado pelo erro) e *não* comitar do outro lado pra evitar inconsistência.

obs.: o parâmetro max_prepared_statements já está configurado.

Isto não parece ser o seu problema aqui, mas ok, tem que deixar mesmo configurado se está usando 2PC.

[]s
Flavio Gurgel
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a