Re: modos de bloqueo

From: "Ivan Perales M(dot)" <ivan(dot)perales(at)gmail(dot)com>
To: Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com>
Cc: Hellmuth Vargas <hivs77(at)gmail(dot)com>, Kernel <jucabapa(at)gmail(dot)com>, Ayuda <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: modos de bloqueo
Date: 2016-04-21 14:39:24
Message-ID: CAHMuS07JAVvU=JtwsFW8tMWh4d4AN5zy22Xui9PX1_JkaJwDHA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Yo también creo que tu problema es una solución más por software que por la
base de datos.
Pero ahora, la pregunta sería, ¿el número de factura debe ser consecutivo?,
si a un cliente se le van a hacer 100 facturas, y a otro solo 2, al primer
cliente le deben de salir del 1 al 100 y al segundo del 101 al 102?, o
puede ser posible que al cliente 1 le salgan del 1 al 102 y al cliente por
ahi del 35 y 47, eso es factible? Por que si esto si lo es, yo creo que lo
que deberias tener es un método exclusivo que ye este regresando el folio.
Despues de hacer todas las validaciones en el método que crea la factura y
ya lo único que queda es guardarla en la base de datos, en ese momento
deberias llamar a éste método exclusivo (que debe crear una transaccion
independiente) y que debe estar preparado para ser llamado desde diferentes
threads, encolando las peticiones, asi el método exclusivo checa cual es el
siguiente folio, actualiza la tabla y lo retorna, las siguientes peticiones
entonces siempre recibirán el siguiente único. La ventaja de esto es que
puedes agregar un parámetro adicional como la serie para obtener el folio.

2016-04-21 9:14 GMT-05:00 Jaime Casanova <jaime(dot)casanova(at)2ndquadrant(dot)com>:

> 2016-04-21 8:03 GMT-05:00 Hellmuth Vargas <hivs77(at)gmail(dot)com>:
> > Hola Lista
> >
> > Quisiera que aclaráramos y dividiéramos el problema en cuestión: la
> > necesitad del bloqueo es por los Item o artículos que hacen parte de la
> > factura para que otro cliente nos los vaya a tomar nuestros artículos
> > mientras se efectúa la factura o es por el numero de la factura? Porque
> > según estoy entendiendo en el hilo de la discusión el tema es el numero
> de
> > facturación, si es así no hay necesidad de bloquear las tablas, el tema
> es
> > con la secuencia que genera el numero de factura, que no debe tener
> saltos,
> > debe ser consecutivo, debe ser UNICO, que debe corresponder a un rango
> > valido, etc. etc y el enfoque es diferente para lograr esto de forma
> > concurrente.
> >
>
> El problema de usar secuencias es que si puede haber saltos, por ejemplo si
> se cancela la operación luego de haber tomado un valor de la secuencia.
> Pero el otro problema que podría haber, o al menos a mi me paso en Ecuador,
> es que el gobierno nos obligaba a imprimir un formato especifico en una
> imprenta y nosotros debíamos usar ese formato llenando los espacios en
> blanco pero la imprenta ya debía darte los números de las facturas así
> que si tenias varias personas facturando debías asegurarte que terminen las
> transacciones en el orden correcto para que coincidan con los números
> fisicos
> de la factura.
>
> Por supuesto, existe más de una manera de solventar ese problema pero el
> problema existe. Y seguramente hay variantes del mismo problema en otras
> partes.
>
> --
> Jaime Casanova www.2ndQuadrant.com
> PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services
>
> -
> Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda(at)postgresql(dot)org
> )
> Para cambiar tu suscripción:
> http://www.postgresql.org/mailpref/pgsql-es-ayuda
>

--
Lindolfo Iván Perales Mancinas
Solo existen 10 tipos de personas en el mundo, las que saben binario y las
que no.

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Guillermo E. Villanueva 2016-04-21 16:04:52 FTS
Previous Message Jaime Casanova 2016-04-21 14:18:57 Re: modos de bloqueo