Foros del Web » Programando para Internet » ASP Clásico »

Session OnEnd

Estas en el tema de Session OnEnd en el foro de ASP Clásico en Foros del Web. Muy buenas. Tengo una pregunta que hacerles. Tengo una conexión a una BD de Oracle, y quiero checar en el Sub Session_OnEnd (cuando se acaba ...
  #1 (permalink)  
Antiguo 18/01/2006, 04:31
 
Fecha de Ingreso: diciembre-2001
Ubicación: Bilbao
Mensajes: 182
Antigüedad: 23 años, 4 meses
Puntos: 0
Session OnEnd

Muy buenas.

Tengo una pregunta que hacerles.

Tengo una conexión a una BD de Oracle, y quiero checar en el Sub Session_OnEnd (cuando se acaba la sesión) si esa conexión está abierta, para cerrarla. ¿Cómo puedo hacerlo?

No sé si me he explicado bien. Hago una conexión a la BD para hacer unas queries y demás. Una vez que el usuario cierra el navegador, o la página da un error, al entrar en el Sub Session_OnEnd, quiero que mire si se ha quedado la conexión abierta o no.

¿Cómo puedo hacerlo?
__________________
Un saludo, y gracias de antemano.

Iker M.
  #2 (permalink)  
Antiguo 18/01/2006, 07:11
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
En el archivo global.asa puedes usar cuatro procedimientos. Te pongo un ejemplo de como va:

<script Language="VBScript" RUNAT=Server>
Sub Application_OnEnd()
Application.Contents.RemoveAll()
End Sub

Sub Application_OnStart()
Application("NumSesion") = 0
Application("NumVisitas") = 0
End Sub

Sub Session_OnEnd()
Application("NumSesion") = Application("NumSesion") - 1
End Sub

Sub Session_OnStart()
Session.Timeout = 60
Application("NumSesion") = Application("NumSesion") + 1
Application("NumVisitas") = Application("NumVisitas") + 1
End Sub
</script>
  #3 (permalink)  
Antiguo 27/02/2006, 02:05
Avatar de HookerSP  
Fecha de Ingreso: diciembre-2004
Mensajes: 983
Antigüedad: 20 años, 4 meses
Puntos: 12
Ojo que al cerrar el navegador no se dispara el OnEnd. Solo salta cuando termina la sesion al sobre pasar el timeout que se establece en el servidor web o dinamicamente mediante session.timeout = n

Hooker
  #4 (permalink)  
Antiguo 27/02/2006, 03:58
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Eso es interesante. Supongo que se puede comprobar con el evento onunload del tag BODY llamando a una pagina asp y con la propiedad IsClientConnected del objeto Response. Si el cliente se ha desconectado, lanzamos manualmente el evento onEnd.



Un saludo
  #5 (permalink)  
Antiguo 27/02/2006, 04:40
Avatar de HookerSP  
Fecha de Ingreso: diciembre-2004
Mensajes: 983
Antigüedad: 20 años, 4 meses
Puntos: 12
Lo del onEnd es como la primitiva, que sale cuando le parece.

Yo me estoy volviendo loco con un código que se ejecuta perfectamente en el onStart, pero nunca se ejecuta en el onEnd con timeout = 1 minuto.

Se supone que el onEnd se lanza manualmente con un session.abandon() pero ...... no te lo puedo confirmar porque a mi me hace el mismo caso que mi ex, o sea, ninguno.

Hooker
  #6 (permalink)  
Antiguo 27/02/2006, 04:52
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
Yo con las sesiones en ASP estoy mas que escarmentado . Simplemente no las uso. Prefiero usar las cookies directamente para pasar informacion entre pagina y pagina o parametrizar la direccion web. Ademas, cada hosting es de su padre y su madre y cada admin de sistema "administra" las sesiones en IIS como le da la gana con lo cual tienes servidores que hacen mas o menos caso a las directivas que el programador ponga manualmente (timeout, abandon, remove.all etc); Y te digo que mi filosofía con respecto a las sesiones en ASP es la misma que con mi ex: si no me quieres, me voy con otra


Un saludo
  #7 (permalink)  
Antiguo 27/02/2006, 04:57
Avatar de HookerSP  
Fecha de Ingreso: diciembre-2004
Mensajes: 983
Antigüedad: 20 años, 4 meses
Puntos: 12
jejeje.

Yo lo que pasa es que el servidor IIS lo tengo pegaito a mi, o sea, que la cosa tiene más delito. Necesito el dichoso onEnd porque por narices tengo que borrar una carpeta cuando el usario se ha largado (o en su timeout correspondiete). Visto lo jodido que se me ha puesto lo mmismo uso el método "On Eye Clik Delete", es decir, de vez en cuando las borro a pelo

Hook
  #8 (permalink)  
Antiguo 27/02/2006, 05:03
 
Fecha de Ingreso: enero-2006
Ubicación: Torroles (Costa der Só)
Mensajes: 1.017
Antigüedad: 19 años, 3 meses
Puntos: 7
¿Has probado lo que te he dicho antes? Comprobar cada vez que se sale de la página con unload si el cliente se ha desconectado?



Un saludo y larga vida al blues!!
  #9 (permalink)  
Antiguo 27/02/2006, 05:14
Avatar de HookerSP  
Fecha de Ingreso: diciembre-2004
Mensajes: 983
Antigüedad: 20 años, 4 meses
Puntos: 12
No lo he probado porque buscando informacion sobre eso en un manual de ASP he leido algo que me ha dado que pensar y es el tema del cache de paginas. seguiremos informando si lo consigo.

hook
  #10 (permalink)  
Antiguo 20/06/2006, 10:10
yz!
Invitado
 
Mensajes: n/a
Puntos:
Código:
<body onunload="self.location=/logout.asp">
logout.asp
Código:
<%   If (IsClientConnected=false) then
           session.abandon
        end if   %>
Creo que sería eso, pero tendras que comprobarlo, lo he dicho de memoria.

Salu2
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 06:28.