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