PDA

Ver la Versión Completa : Conocer ip de las conexiones existentes


anduj
25-02-2005, 13:37:38
Hola amigos

Necesito conocer las ips de las conexiones que tiene Firebird en un momento dado. Esto me permitirá desbloquear a los usuarios que no han salido de forma correcta del programa. Tengo una tabla de usuarios que los controla.

Mediante un IBDatabaseInfo puedo cononocer los usuarios que hay conectados, pero esto no me sirve ya que todos conectan con el SYSDBA.
He buscado más propiedades de IBDatabaseInfo y no encuentro nada. Tampoco veo nada en la API de Interbase. (Utilizo Firebird 1.5)

¿Alguien lo ha conseguido?

Mil gracias por escucharme.

Saludos

Casimiro Notevi
25-02-2005, 14:54:54
Perdona mi curiosidad, pero qué quieres decir exactamente con "desbloquear a los usuarios que no han salido de forma correcta del programa" ?
¿Qué problemas tendrías en el servidor de firebird en esos casos?

anduj
25-02-2005, 15:11:36
Te cuento:

Tengo una tabla de usuarios donde hay un campo que indica si el usuario está activo para evitar que se utilice el mismo usuario en otro puesto.
Este campo se pone a True al acceder al programa y pasa a estado False al salir.
El problema surge cuando un usuario apaga el PC sin salir de la aplicación o cuando se produce un "cuelgue" o un corte de energia. El usuario en este caso se queda activo y no puede volver a entrar, es necesario que el administrador entre en la gestión de usuarios y lo desbloquee.

Si conociese la ip de las conexiones que hay activas en el servidor podria desbloquearlo automáticamente, ya que apuntaria la ip en la tabla de usuarios al entrar en el programa. Un procedimiento se encargaria de desbloquear todos los usuarios cuya ip no se encuentre entre las conexiones activas.

Saludos

Casimiro Notevi
25-02-2005, 20:22:34
pues mira este enlace en trucomania (http://www.q3.nu/trucomania/ftesp.html)

Casimiro Notevi
25-02-2005, 20:24:31
perdona, es el truco 82 y está en la sección de internet.

anduj
27-02-2005, 11:42:17
Gracias Casimiro por tu respuesta, pero no es exactamente lo que busco.

El truco que comentas me puede venir bien a la hora de acceder al sistema y anotar la ip local del usuario que conecta, pero lo que busco yo es otra cosa.
Busco la manera de consultar a la base de datos Firebird las conexiones que tiene en ese momento y que retorne las ips de todas las conexiones.

Conozco la forma de saber los usuarios que están conectados a Firebird, pero no los distingo ya que siempre conectan con SYSDBA. Por este motivo creo que lo mejor seria conocer las ips de todas las conexiones que tiene Firebird.

Saludos

StartKill
01-03-2005, 00:41:56
Wnas,

HUmm, creo que lo solucionaria de la siguiente forma:

Dices:
Tengo una tabla de usuarios donde hay un campo que indica si el usuario está activo para evitar que se utilice el mismo usuario en otro puesto.
Este campo se pone a True al acceder al programa y pasa a estado False al salir.
Pero, siempre hay un pero...
El problema surge cuando un usuario apaga el PC sin salir de la aplicación o cuando se produce un "cuelgue" o un corte de energia. El usuario en este caso se queda activo y no puede volver a entrar,


"Bloquea el registro del usuario" y de esa forma cuando otro usuario venga lo encontrara bloqueado, y si por alguna razon la maquina de este usuario se cuelgue, apagon, reset.....el servidor soltara dicho registro bloqueado y este registro estara a la espera que este usuario ingrese nuevamente ;)

Espero sirva

Your friend

StartKill
Lima-Perú

anduj
01-03-2005, 09:39:32
Muchas gracias Startkill

Tu idea me parece muy interesante, pero se me plantea una duda. Cada vez que se produzca un reset al estar el registro bloqueado, ¿que sucede con la transacción que se queda abierta?.
¿Se dedaria en el limbo? ¿Puede ser peligroso?

Un saludo y gracias nuevamente.

StartKill
01-03-2005, 15:50:14
Wnas

Tu idea me parece muy interesante, pero se me plantea una duda. Cada vez que se produzca un reset al estar el registro bloqueado, ¿que sucede con la transacción que se queda abierta?.
¿Se dedaria en el limbo? ¿Puede ser peligroso?

Humm, tenes razon, pero si se resetea la maquina, lo mismo pasara con tus otras transacciones no?

Pero00... la pregunta es "puede ser peligroso??", lo vamos a poner en otro hilo para sacarnos la duda :D

Your friend :cool:

StartKill
Lima-Perú