gyhtg
Juan Jose Rosales Rodriguez ERP-CUBA 2009. ----- Mensaje original ----- De: "Mariano Reingart" <mari...@nsis.com.ar> Para: "Alvaro Herrera" <alvhe...@alvh.no-ip.org> CC: "Jaime Casanova" <jcasa...@systemguards.com.ec>, "suso" <jlcu...@terra.es>, pgsql-es-ayuda@postgresql.org Enviados: Martes, 16 de Junio 2009 16:02:37 GMT -05:00 Región oriental EE. UU./Canadá Asunto: Re: [pgsql-es-ayuda] Bloqueo en registro-tabla Alvaro: > Mariano Reingart escribió: > >> Para solucionar el tema si el médico se va y no desbloquea, se podría >> implementar algun mecanismo de señales con LISTEN y NOTIFY para detectar >> si el bloqueo sigue vigente o no. > > Hmm, ¿quién haría listen y quién notify? ¿Qué identificador se usaría? Se me ocurre que una forma es que el que necesita acceso (y esta bloqueado) podría hacer un NOTIFY sobre la misma tabla, y el LISTEN lo haría el que esta bloqueando. De esta forma los que tengan bloqueos, los podrían revalidar (cambiar la fecha o algún otro dato del registro en cuestión). Si no los revalidan en x segundos listo, se consideraría que la máquina se apago o la conexión se interrumpió. Igualmente al escuchar en el NOTIFY, tendría que preguntarle al usuario si renovar el bloque o permitir que el otro usuario modifique el registro, porque si te dejaron la maquina encendida y el proceso es automático, estaríamos en la misma (va a renovar el bloqueo cuando el usuario no esta). De todas maneras, al seguir siendo un bloqueo lógico, a mi me parece que también se debe verificar la versión de la fila con xmin, para evitar sobreescribir los datos que pudo haber escrito otro usuario, por el motivo que fuese. Igualmente todo esto es una suposición, habría que probarlo bien. Sds Mariano > > -- > Alvaro Herrera > http://www.flickr.com/photos/alvherre/ > "Hackers share the surgeon's secret pleasure in poking about in gross > innards, > the teenager's secret pleasure in popping zits." (Paul > Graham) > -- > TIP 8: explain analyze es tu amigo > -- TIP 9: visita nuestro canal de IRC #postgresql-es en irc.freenode.net