Las sesiones que crean nuestras aplicaciones son muy
importantes, perderlas no es una opción y más cuando se están manejando compras
o alguna otra transacción que implique algún monto monetario. Es necesario
tener alta disponibilidad de estas sesiones. Oracle WebLogic posee una
característica cuyo concepto ya es muy conocido: Un Cluster.
Cada aplicación dentro de WebLogic Server está alojada
en un contenedor llamado Managed Server el cual es una analogía con el ya
descontinuado OC4J del antiguo OAS. Si el Managed Server se caé, la aplicación
dejaria de ser accesible para nuestros clientes o usuarios, lo cual en muchas
empresas no puede suceder, siempre hay aplicaciones críticas, que deben estar
disponibles. En WebLogic tambien se maneja el concepto "Machine", el
cual no es más que la representación lógica de un servidor físico. Un Managed
Server es asignado a un "Machine" y finalmente un "Cluster"
es compuesto por uno o más Managed Servers alojados en uno o más
"Machines".
A continuación la definición que oracle dá a cada uno
de estos conceptos:
Administration Server: The Administration Server operates as the central control entity for the configuration of the entire domain. It maintains the domain's configuration documents and distributes changes in the configuration documents to Managed Servers. You can also use the Administration Server as a central location from which to monitor all resources in a domain.
Managed Server: Managed Servers host business applications, application components, Web services, and their associated resources. To optimize performance, Managed Servers maintain a read-only copy of the domain's configuration document. When a Managed Server starts up, it connects to the domain's Administration Server to synchronize its configuration document with the document that the Administration Server maintains.
Cluster: A cluster is a collection of multiple Oracle WebLogic Server instances running simultaneously and working together to provide increased scalability and reliability.
Por lo tanto si tenemos una aplicación desplegada en nuestro cluster, automaticamente se alojará en cada uno de los Managed Servers que componen ese cluster logrando así Alta Disponibilidad, de tal manera que si un Managed Server se caé, los demás Managed Servers involucrados en el mismo cluster tomarán las sesiones y las seguiran manteniendo disponibles.
En este ejemplo crearemos un Dominio con un cluster
compuesto de dos Managed Servers.
Administration Server: The Administration Server operates as the central control entity for the configuration of the entire domain. It maintains the domain's configuration documents and distributes changes in the configuration documents to Managed Servers. You can also use the Administration Server as a central location from which to monitor all resources in a domain.
Managed Server: Managed Servers host business applications, application components, Web services, and their associated resources. To optimize performance, Managed Servers maintain a read-only copy of the domain's configuration document. When a Managed Server starts up, it connects to the domain's Administration Server to synchronize its configuration document with the document that the Administration Server maintains.
Cluster: A cluster is a collection of multiple Oracle WebLogic Server instances running simultaneously and working together to provide increased scalability and reliability.
Por lo tanto si tenemos una aplicación desplegada en nuestro cluster, automaticamente se alojará en cada uno de los Managed Servers que componen ese cluster logrando así Alta Disponibilidad, de tal manera que si un Managed Server se caé, los demás Managed Servers involucrados en el mismo cluster tomarán las sesiones y las seguiran manteniendo disponibles.
Las variables de entorno que debemos definir antes de
iniciar el ejemplo son las siguientes:
JAVA_HOME=
/usr/jrockit/jrockit-jdk1.6.0_33-R28.2.4-4.1.0
MW_HOME= /u02/Middleware
WLS_HOME= /u02/Middleware/wlserver_12.1/
Primero debemos ejecutar el Asistente de Configuración
de Dominios, "config.sh" el cual se encuentra en el
$WLS_HOME/common/bin
$cd $WLS_HOME/common/bin
$./config.sh
En la pantalla de "Select Domain Source", seleccionar la opcion "Generate a domain configured automatically to support the following products". Luego dar clic en el boton Next.
Escribir el nombre del dominio, y la ruta en donde se crearán todos los
archivos necesarios. Luego dar clic en el boton Next.
Para nuestro ejemplo seleccionaremos la opcion "Development Mode" y Seleccionamos
nuestro JDK, que en este ejemplo es Un
Jrockit 1.6.0_33. Clic en el boton Next.
Cree un Cluster de nombre "mycluster" con
modo de mensajes "unicast". Clic en Next.
Agregar nuestros dos Managed Servers (myserver_1,
myserver_2) al cluster "mycluster". Clic en el boton Next.
Crear una "Machine" de nombre
"mymachine" que escuche todas las direcciones y que use el puerto
5556. Clic en el boton Next.
Confirmar
todos los datos y finalmente clic en el boton "Create" para que la
creacion de nuestro dominio sea creado con una machine, un cluster con dos managed
servers y un administration server.
Cuando la creación del dominio finalice, verificar que
no haya terminado con errores y finalmente clic en el boton "done".
$cd $MW_HOME/user_projects/domains/test_domain
$./startWebLogic.sh &
$cd $MW_HOME/wlserver_12.1/server/bin
$./startNodeManager.sh &
http://hostname:7001/console
Ingresamos el usuario y la contraseña de nuestro
usuario administrador del dominio, tal como se muestra en la siguiente imagen:
Despues de registrarnos correctamente, iremos al panel de “Estructura de Dominio” que queda en la parte izquierda y seguiremos los siguientes pasos:
- Clic en Entorno
- Clic en Servidores
- Clic en la pestaña Control
- Seleccionar los Managed Servers myserver_1 y myserver_2.
- Clic en el botón “Iniciar”.
Procedemos a realizar “deploy” de esta aplicación.
Dentro de la consola de administración web seguimos los siguientes pasos:
1. Clic en Desplieges
2. Clic en “Instalar”
3. Ingresamos el
directorio “/home/oracle” en el campo “ruta de acceso” y elegimos la aplicación
“shoppingcart.ear”. Luego clic en el botón Siguiente.
4. Clic
en “Instalar Despliegue como Aplicación”. Clic en el botón Siguiente.
5. Clic en “mycluster” para que la aplicación sea desplegada en “Todos los
servidores del Cluster”. Clic en el botón Siguiente.
6. Clic en “Copiar
aplicación en cada uno de mis destinos” del menú “Accesibilidad de Origen”.
Clic en el botón Siguiente.
7. Clic en “No, revisaré la configuración más tarde” del menú “Configuracion
adicional”. Clic en el botón Finalizar.
8. Activar los
cambios de la sesión y luego Iniciar la aplicación “Sirviendo todas las
solicitudes”.
Ahora entramos a nuestra aplicación web por medio del primer managed server (myserver_1) mediante la
siguiente dirección:
http://hostname:8001/shoppingcart/
Estos productos van guardándose en nuestro “Carrito”
por medio de la creación de una “sesión”.
Si entramos a ver nuestro carrito aparecen los
productos que hemos agregado:
Ahora Bajamos un Managed Server “myserver_1” para simular que hubo una caída del mismo, para eso entramos nuevamente a la consola de administración Web y seguimos los siguientes pasos:
- Clic en Entorno
- Clic en Servidores
- Clic en la pestaña Control.
- Seleccionamos el Managed Server “myserver_1”.
- Clic en el botón “Cerrar” y luego en la opción “Forzar Cierre Ahora”.
Y como vemos el Managed Server “myserver_1” ya esta
apagado:
Volvemos a entrar a nuestra aplicación web por medio
del segundo Managed Server (myserver_2):
http://hostname:8002/shoppingcart/
Vuelvo a entrar a ver los productos que mi carrito
lleva recaudado y vemos que los productos que ya había comprado aún siguen en
el carrito, y con esto confirmamos que la sesión no se perdió y que la
aplicación sigue estando disponible gracias al Cluster de Managed Servers que
hemos creado.
No hay comentarios:
Publicar un comentario