Re: Algunas sentencias no quedan dentro de transacción

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Raul Duque <raulandresduque(at)hotmail(dot)com>
Cc: Lista - PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Algunas sentencias no quedan dentro de transacción
Date: 2009-11-03 16:27:51
Message-ID: 20091103162751.GC3645@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Raul Duque escribió:

> El número que aparece posterior a la IP es el transaction Id. Como
> pueden observar las primeras sentencias se ejecutan aparentemente
> fuera de una transacción aunque ya se había ejecutado el "BEGIN".
> Incluso existe un SAVEPOINT que se ejecuta crea fuera de la
> transacción y se hace release dentro de la transacción.

Ya entiendo lo que pasa. En 8.3 hay una optimización que permite que
una transacción no adquiera un ID de transacción hasta que ese ID se
necesita para algo, que es el UPDATE que se ve justo ahí donde cambia el
ID en el log.

> Aunque no copio todo el log para esta transacción porque es muy
> extenso, no hay ningún error del motor reportado en el log entre el
> BEGIN-COMMIT. Incluso el servidor no se reiniciado desde esa fecha.
>
> El resultado en la base de datos fue que solo una parte de las
> sentencias que cubría la transacción quedaron en firme con las
> complicaciones que trae una situación de estas. Alguna idea de qué
> pudo haber pasado?

No, creo que esto es otra cosa. De hecho me pregunto si tiene que ver
con los SAVEPOINT que muestras: cada sentencia está rodeada de un
savepoint/release. Si alguna sentencia fallara por cualquier motivo,
podría haber un ROLLBACK TO ese savepoint, y entonces el resto de la
transacción podría continuar sin problemas.

Tienes que investigar de dónde vienen esos savepoints. Quizás se cambió
una opción del driver ODBC, y ahora pone un savepoint en cada sentencia?
Ese comportamiento NO es de Postgres. (Aclaro que no considero que el
driver ODBC sea de Postgres).

--
Alvaro Herrera Vendo parcela en Valdivia: http://alvherre.cl/caboblanco
"Endurecerse, pero jamás perder la ternura" (E. Guevara)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ing. Marcos Orti­z 2009-11-03 16:42:45 Entornos de alta disponibilidad para PostGIS
Previous Message Alvaro Herrera 2009-11-03 16:10:15 Re: [pgsql-es-ayuda] Re: [arpug] Re: [arpug] Traducción al español del manual oficial