Muchas gracias por su ayuda, realizare las pruebas con las opciones que me
propusieron...!!

El 4 de octubre de 2010 12:08, Alvaro Herrera
<[email protected]>escribió:

> Excerpts from Diego Ayala's message of lun oct 04 08:07:25 -0400 2010:
> > buen dia compañeros, tengo una consulta , la gente de desarrollo esta
> > teniendo un incoveniente durante la ejecucion de una transaccion, que es
> la
> > siguiente, ellos poseen un procedimiento que ejecuta una transaccion,
> dentro
> > del cual se evaluan ciertas cosas, la duración de esta transaccion es
> > alrededor de 300 a 500 ms. al hacer commit esta transaccion se almacena
> en
> > una tabla A, la situacion radica en que cuando se esta ejecutando esta
> > transacción, ingresa otra transacción que  verifica la situacion de la
> > primera transaccion, esta segunda transacción,  evalua la primera y como
> se
> > ejecuta en menos tiempo que la primera, la segunda almacena datos errones
> en
> > otra tabla B, como resultado de la primera transaccion. La consulta es si
> > hay algun metodo o funcion en PostgreSQL que ayude para evitar que la
> > segunda transaccion evalue la primera, como bloquear la segunda
> transaccion
> > hasta que la primera culmine ..
>
> Podrías obtener un lock al principio de cada una, por ej. con
> pg_advisory_lock().
>
> Otra alternativa sería usar modo de aislación serializable (SET
> TRANSACTION ISOLATION LEVEL SERIALIZABLE).  Tendrías que asegurarte que
> si una de ellas falla, tendría que empezar de nuevo; creo que esta
> alternativa es menos conveniente en tu caso.
>
> --
> Álvaro Herrera <[email protected]>
> The PostgreSQL Company - Command Prompt, Inc.
> PostgreSQL Replication, Consulting, Custom Development, 24x7 support
>

Responder a