Global.ASA

  • Por
Recordamos el concepto de aplicaciones y sesiones y vemos su funcionamiento. También enseñamos el trabajo con el archivo global.asa para controlar sucesos de aplicación y sesión.
Para hablar del Global.ASA es necesario que recordemos o aclaremos previamente un par de conceptos como son las aplicaciones y las sesiones.

Aplicaciones y sesiones

Una aplicación se puede entender como más o menos lo que es un sitio web. Los dominios de la aplicación son el directorio raíz y los subdirectorios de esta. En un servidor web como PWS tenemos una aplicación en la raíz del servidor, y por cada directorio virtual que creemos tendremos otra aplicación.

El funcionamiento de las aplicaciones está ligado al de las sesiones. Las aplicaciones son globales a todo el sitio y las sesiones son particulares de cada usuario. Concretamente funcionan con este proceso:
  • La aplicación está parada, así como las sesiones, porque no hay ningún usuario dentro.
  • La aplicación se pone en marcha cuando entra el primer usuario.
  • El primer usuario pone en marcha una sesión
  • Los siguientes usuarios ya tienen en marcha la aplicación, con lo que solo desatan la creación de una sesión cada uno.
  • Con cada usuario que abandona la página (para ello se pasa 20 minutos o más sin consultar ninguna otra página), se cierra su sesión.
  • Con el último usuario que sale se cierra la aplicación.
Se pueden crear variables de aplicación y de sesión en cualquier momento. Remarcamos, las variables aplication van a ser comunes para todos los recursos de la aplicación, todos los usuarios, etc. todos acceden a la misma variable. Las variables de sesión son locales a cada usuario, por lo tanto cada usuario tiene una copia de la variable sesión distinta de la de otro usuario, que puede tener valores distintos.

Para crear variables de aplicación

Application("nombreDeVariable") = valor

Para asegurarse exclusión mutua al acceder a una variable de aplication se utilizan los métodos lock y unlock, de esta manera:

Application.lock
Application("nombreDeVariable") = valor
Application.unlock

Crear variables de sesión

Session("nombreDeVariable") = valor

Qué es el global.asa

Global.ASA nos va a servir para controlar los eventos principales asociados con el inicio y fin de la aplicación, así como con el inicio y fin de sesión. Dicho de otro modo, con global.asa podemos hacer cosas cuando se inicien y acaben las aplicaciones y las sesiones.

El global.asa se coloca en el directorio raíz de la aplicación y tiene la siguiente sintaxis

<SCRIPT LANGUAGE=VBScript RUNAT=server>

sub application_onStart()
'sentencias que se ejecutan al entrar el primer usuario
end sub

sub application_onEnd()
'sentencias a ejecutar al irse el último usuario
end sub

sub session_onStart()
'sentencias que se ejecutan cada vez que entra un usuario
end sub

sub session_onEnd()
'sentencias a ejecutar al irse el cada usuario
end sub

</SCRIPT>


Un detalle a destacar por su utilidad práctica es que si queremos sustituir nuestro global.asa por otro se tendrá que apagar el servicio y volver a encender, o incluso volver a arrancar el ordenador si lo anterior no funciona. Si no hacemos esto siempre tomará la versión antigua del global.asa, aunque se haya cambiado. Por esta misma razón, hay que tener cuidado que no tenga errores el archivo global.asa, pues nuestra página dará errores hasta que reiniciemos el servicio, con el consiguiente espacio de tiempo en el que estará el dominio caído.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

elizabeth

12/2/2004
hola tengo un problema con el global.asa
yo alojo mi pagina y no me sale el numero de usuarios activos, no se aque se deba pero me esta dando mucho problema ya no se que hacer para que aparezca.enconte codigo para mostrar nuemro de usarios activos lo copie y pege en mi pagina y nada de nada.
si pudieras ayudarme te lo agradeceria mucho. el hosting esta en otro pais.

ilse lorenzo

12/6/2009
Contar numero de inscritos
Hola, podrían ayudarme?

Tengo que contar por el formulario el número de personas inscritas y si llega al total indicado o permitido no deben inscribirse más personas, además debo enviar el número de personas inscritas por correo.

Hasta ahora he podido enviar la información del formulario por correo pero me falta ir contando el número de inscritos y no permitir más inscritos si llega a sobrepasar el número indicado

Muchas gracias por la ayuda que me puedan brindar

TomYorke

30/7/2009
Muy buen articulo
Muy buen articulo, entendible y práctico.

colindres

06/6/2011
AYUDA
BROTHER TODO ME PARESE SUPER ANDO BUSCANDO ALGO ASI COMO UN CARRITO ME GUSTARIA QUE PUSIERAS IMAGENES PARA ENTENDERLE MEJOR .......OYE MIRA YO ESTOY CREANDO MI PRIMER PROYECTO ASP.NET ES UNA FARMACIA NECESITO ALGO QUE ME PERMITA VENDER EN LINEA ALGO SENSILLO SI ME PUEDES GUIAR ... carcolindres08@yahoo.com
quiero saber si existes algo como que se puedan seleccionar los productos con un checked y al darle click a un botton me mande a mi correo lo que seleccionen con los checked ayudame porfa .. YA TENGO CREDO TODO SOLO ME FALTA ESO EL PODER VENDER EN LINEA..... carcolindres08@yahoo.com carcolindres08@yahoo.com carcolindres08@yahoo.com