From: | Oswaldo Hernández <listas(at)soft-com(dot)es> |
---|---|
To: | postgres ayuda sql español <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: Problemas de concurrencia? |
Date: | 2009-09-21 17:20:54 |
Message-ID: | 4AB7B5F6.6060401@soft-com.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Alvaro Herrera escribió:
> Jorge Romeo escribió:
>
>> El problema es que tras dar este error (tantas veces como aerogeneradores tengo), las siguientes consultas también fallan... Ese es el verdadero problema que quiero evitar. Por ahora tengo una solución fea que funciona, que es meter un "conexion.commit()" en el control de la excepcion, para que cada vez que falla de por terminado el bloque y la siguiente consulta no falle.
>
> Cuando eso pasa es porque hay una transacción abierta. Obviamente
> alguna capa de tu aplicación está abriendo una transacción. Yo creo que
> es por ahí que debes investigar.
>
De forma predeterminada psycopg2 utiliza READ_COMMITED, abre las transacciones automáticamente y no
se cierran hasta se envía explicitamente un commit() o rollback().
Para cambiar esta forma de trabajar hay que utilizar el método set_isolation_level() que ademas de
READ_COMMITED (default) y SERIALIZABLE tiene la opción AUTOCOMMIT:
con.set_isolation_level(0)
Saludos,
--
*****************************************
Oswaldo Hernández
oswaldo (@) soft-com (.) es
*****************************************
PD:
Antes de imprimir este mensaje, asegúrese de que es necesario.
El medio ambiente está en nuestra mano.
From | Date | Subject | |
---|---|---|---|
Next Message | Jose Carlos Chevarria | 2009-09-21 17:25:25 | Re: Abierta la inscripción a PGCon Brasil 2009 |
Previous Message | Alvaro Herrera | 2009-09-21 16:50:53 | Re: dudas basicas |