Logotipo de Sun Java     Anterior     

Logotipo de Sun
Sun Java System Application Server Enterprise Edition 8.1 2005Q1 

Configuración de alta disponibilidad mediante recuperación ante fallos

Con la configuración utilizada en el capítulo anterior, si una instancia de servidor se desactiva, los usuarios pierden el estado de la sesión. Esta sección, la segunda de dos temas avanzados, proporciona los pasos necesarios para instalar la base de datos de alta disponibilidad (HADB), crear un clúster de alta disponibilidad y probar la persistencia de una sesión HTTP.

Application Server admite la persistencia de sesión HTTP y la persistencia de Stateful Session Beans.Los procedimientos de este capítulo cubren la persistencia de la sesión HTTP.

Estos pasos asumen que ya ha realizado los pasos de las secciones anteriores de esta Guía rápida. Los procedimientos se presentan en el orden en el que se deben llevar a cabo.


Nota

La realización de esta sección puede requerir recursos de hardware adicionales.



Información acerca de clústeres de alta disponibilidad y HADB

Un clúster de alta disponibilidad en Sun Java System Application Server Enterprise Edition integra un servicio de replicación de estado con los clústeres y el equilibrador de carga creados anteriormente, lo que permite recuperar sesiones HTTP tras un error.

Los objetos HttpSession y el estado de Stateful Session Bean se guardan en la HADB, una base de datos de alta disponibilidad para guardar el estado de la sesión. Este servicio de administración de estado escalable horizontalmente se puede gestionar independientemente del nivel del servidor de aplicaciones. Se ha diseñado para admitir hasta el 99,999% de la disponibilidad de datos y del servicio con capacidades de equilibrado de carga, recuperación tras error y recuperación de estado.

El hecho de mantener las responsabilidades de gestión separadas de Application Server reporta considerables ventajas. Las instancias de Application Server emplean sus ciclos actuando como contenedores escalables y de alto rendimiento de Java™ 2 Platform, Enterprise Edition (plataforma J2EE™) delegando la replicación del estado a un servicio de estado de alta disponibilidad externo. Debido a esta arquitectura libre, las instancias del servidor de aplicaciones se pueden agregar o eliminar fácilmente de un clúster. El servicio de replicación de estado de HADB se puede escalar independientemente para obtener un nivel óptimo de rendimiento y disponibilidad. Cuando una instancia del servidor de aplicaciones también realiza la replicación, el rendimiento de las aplicaciones de J2EE puede resentirse y puede estar sujeto a mayores pausas de recogida de basura.

Debido a que cada nodo HADB requiere 512 MB de memoria, debe contar con un 1 GB de memoria para ejecutar dos nodos HADB en la misma máquina. Si dispone de menos memoria, configure cada nodo en una máquina distinta. La utilización de una base de datos de dos nodos en un único host no se recomienda para la implementación ya que no es una configuración que sea tolerante con los fallos.


Pasos de instalación previa de HADB

Este procedimiento cubre las tareas de instalación previa más comunes. Para obtener más información acerca de otros temas de instalación previa, incluidos los requisitos previos para instalar HADB, configurar la redundancia de red y la compatibilidad del sistema de archivos, consulte la High Availability Administration Guide (Guía de administración de alta disponibilidad).

  1. Obtenga un acceso raíz.
  2. Defina las variables relacionadas con la memoria compartida.
  3. En Solaris:

    1. Agregue estas líneas al archivo /etc/system (o si estas líneas se encuentran en el archivo como comentarios, haga que dejen de ser comentarios y asegúrese de que los valores coincidan con los que se proporcionan aquí):
    2. set shmsys:shminfo_shmmax=0x80000000

      set shmsys:shminfo_shmseg=20

      set semsys:seminfo_semmni=16

      set semsys:seminfo_semmns=128

      set semsys:seminfo_semmnu=1000

      Defina shminfo_shmmax como la memoria total del sistema (en notación hexadecimal el valor 0x80000000 que se muestra es para 2 GB de memoria).

      Si las variables seminfo_* ya se han definido, increméntelas por las cantidades que se muestran.

    3. Reinicie utilizando este comando:
    4. sync; sync; reboot

      En Linux:

    5. Agregue estas líneas al archivo /etc/sysctl.conf (o si se encuentran en el archivo como comentarios, haga que dejen de ser comentarios). Defina el valor en la cantidad de memoria física del equipo. Especifique el valor como un número decimal de bytes. Por ejemplo, para un equipo que tenga 512 MB de memoria física:
    6. kernel.shmmax=536870912

      kernel.shmall=536870912

    7. Reinicie utilizando este comando:
    8. sync; sync; reboot

  4. Si ha utilizado el software de JDK existente al instalar un Application Server independiente, HADB requiere Sun JDK 1.4.1_03 o superior (para obtener la última información acerca de las versiones JDK, consulte las Notas de la versión). Compruebe la versión instalada y si esta acción no se ha realizado, defina la variable de entorno JAVA_HOME como el directorio donde se haya instalado JDK.
  5. Si es necesario tras reiniciar el equipo, reinicie el dominio, Web Server y el agente de nodos.
  6. Para reiniciar el dominio, utilice el comando asadmin start-domain domain1.

    Para reiniciar Web Server, utilice el comando dir_instalación_Web_Server/https-nombre_host/start.

    Para reiniciar el agente de nodos, utilice el comando asadmin start-node-agent nombre_host. Sustituya la variable nombre_host por el nombre del host en el que se está ejecutando Application Server.


Instalación de HADB

Esta sección proporciona los pasos para instalar la base de datos de alta disponibilidad (HADB).


Nota

Si tiene previsto ejecutar la base de datos de alta disponibilidad en el equipo que contiene Application Server, y si instaló HADB en el momento de instalar Application Server, vaya a Inicio de HADB.


Puede instalar el componente HADB en el mismo equipo que el sistema Application Server si dispone de 2 GB de memoria y 1 o 2 CPU. Si este no es el caso, utilice hardware adicional. Por ejemplo:

Para instalar HADB:

  1. Ejecute el programa de instalación de Application Server o Java Enterprise System.
  2. En la página “Selección de componentes”, seleccione la opción para instalar HADB.
  3. Complete la instalación en los hosts.


Inicio de HADB

Esta sección describe el cómo se inicia del agente de administración de HADB ejecutando la secuencia de comandos ma-initd. En el caso de una implementación en producción, inicie el agente de administración como un servicio para asegurar su disponibilidad. Para obtener más información, consulte la High Availability Administration Guide (Guía de administración de alta disponibilidad).

Si se inicia una base de datos con nodos HADB en varios hosts, inicie el agente de administración en cada host.

En una instalación de Java Enterprise System:

  1. Cambie al directorio etc/init.d:
  2. cd /etc/init.d

  3. Ejecute el siguiente comando para iniciar el agente:
  4. ./ma-initd start

En una instalación de Application Server independiente:

  1. Acceda al directorio bin de HADB en la instalación de Application Server:
  2. cd dir_instalación/hadb/4/bin

  3. Ejecute el siguiente comando para iniciar el agente:
  4. ./ma-initd start


Configuración de un clúster y una aplicación para conseguir una alta disponibilidad

  1. En la máquina en la que se está ejecutando Domain Administration Server, configure FirsCluster para utilizar HADB con este comando:
  2. asadmin configure-ha-cluster --hosts nombre_host_hadb,nombre_host_hadb --devicesize 256 FirstCluster

    Sustituya la variable nombre_host_hadb por el nombre de host de la máquina donde se va a ejecutar la HADB. Si está utilizando una única máquina, deberá indicar su nombre dos veces.

    Este ejemplo simplificado ejecuta dos nodos de la HADB en la misma máquina. En las configuraciones de producción, se recomienda la utilización de más de una máquina.


    Nota

    Para reducir la huella de memoria de HADB con fines de demostración, ejecute el siguiente comando hadbm. Se le solicitará la contraseña de administración.

      En instalaciones de Java Enterprise System:

      /opt/SUNWhadb/4/bin/hadbm set DataBufferPoolSize=64,LogBufferSize=25 FirstCluster

      En instalaciones independientes de Application Server:

      dir_instalación/hadb/4/bin/hadbm set DataBufferPoolSize=64,LogBufferSize=25 FirstCluster


  3. Configure la aplicación clusterjsp para la persistencia de la sesión HTTP habilitando la alta disponibilidad:
    1. En la consola de administración, expanda el nodo Applications (Aplicaciones)
    2. Expanda Enterprise Applications (Aplicaciones de Enterprise).
    3. Haga clic en clusterjsp.
    4. En el panel derecho, en la ficha General, haga clic en la casilla de verificación Availability Enabled (Disponibilidad habilitada).
    5. Haga clic en “Guardar”.
    6. La disponibilidad está habilitada en el nivel de instancia de servidor y contenedor de forma predeterminada.


Reinicio del clúster

Para reiniciar el clúster:

  1. En la consola de administración, expanda el nodo Clusters (Clústeres).
  2. Haga clic en FirstCluster.
  3. En el panel derecho, haga clic en Stop Instances (Detener instancias).
  4. Una vez que se hayan detenido las instancias, haga clic en Start Instances (Iniciar instancias).


Comprobación de la recuperación tras error de la sesión HTTP

Los pasos para comprobar la recuperación tras error de los datos de la sesión son parecidos a los de la comprobación de equilibrado de carga, tal y como se describe en el tema Verificación del equilibrado de carga. En esta ocasión, los datos de la sesión se mantienen después del error. La recuperación tras error se muestra claramente al usuario porque la aplicación de ejemplo se configura para un reintento automático tras el fallo.

  1. Para mostrar la primera página de la aplicación clusterjsp, escriba esta dirección URL en el navegador:
  2. http://host_local:puerto_Web_Server/clusterjsp

    Sustituya la variable host_local por el nombre del sistema en el que se esté ejecutando Web Server.

    Sustituya la variable puerto_Web_Server por el valor del atributo del puerto del elemento LS de dir_instalación_Web_Server/https-nombre_host/config/server.xml. Para este ejemplo, el puerto que se usa es 38000.

    Aparece una página similar a la que se muestra en el apartado Verificación de la aplicación en clúster.

  3. Compruebe la información que se muestra acerca de la sesión y del host. Por ejemplo:
    • Executed From Server: host_local
    • Server Port Number: 38000
    • Executed Server IP Address: 192.18.145.133
    • Session ID: 41880f618e4593e14fb5d0ac434b1
    • Session Created: Wed Feb 23 15:23:18 PST 2005
    • Acceda a los archivos de registro de acceso al servidor para determinar la instancia del servidor de aplicaciones que está sirviendo la aplicación. Los archivos de registro están ubicados en:

    • Instalación de Solaris Java Enterprise System:
      /var/opt/SUNWappserver/nodeagents/nombre_nodo_agente/i1/logs/access/server_access_log
      /var/opt/SUNWappserver/nodeagents/
      nombre_nodo_agente/i2/logs/access/server_access_log
    • Instalación de Linux Java Enterprise System:
      /var/opt/sun/appserver/nodeagents/nombre_nodo_agente/i1/logs/access/server_access_log
      /var/opt/sun/appserver/nodeagents/
      nombre_nodo_agente/i2/logs/access/server_access_log
    • Instalaciones independientes de Application Server:
      dir_instalación/nodeagents/nombre_nodo_agente/i1/logs/access/server_access_log
      dir_instalación/nodeagents/nombre_nodo_agente/i2/logs/access/server_access_log
  4. Detenga la instancia de Application Server que sirve la página.
    1. En la consola de administración, en el panel izquierdo, expanda Clusters (Clústeres).
    2. Haga clic en FirstCluster.
    3. En el panel derecho, haga clic en Instances (Instancias).
    4. Haga clic en la casilla de verificación situada al lado de la instancia del servidor que sirvió la solicitud y haga clic en el botón Stop (Detener).
  5. Vuelva a cargar la página de la aplicación de ejemplo clusterjsp.
  6. Los datos del ID de la sesión y de atributos de la sesión se mantienen.

  7. Compruebe el registro de acceso de la otra instancia de Application Server y tenga en cuenta que ahora está sirviendo la solicitud.

Las funciones de recuperación de estado tras error funcionan porque la sesión HTTP se almacenó persistentemente en la HADB. Además del estado de sesión HTTP, Application Server también puede almacenar el estado de los Enterprise Beans EJB™ en la HADB.


Limpieza

Para limpiar el sistema, debe desinstalar Application Server realizando los pasos que figuran en Opción 1: Desinstalación, o bien eliminar el clúster de ejemplo que acaba de crear llevando a cabo el procedimiento Opción 2: Eliminación del clúster de ejemplo.

Opción 1: Desinstalación

Para llevar a cabo una desinstalación completa:

  1. Detenga los procesos de Application Server usando estos comandos:
  2. asadmin stop-cluster FirstCluster

    asadmin remove-ha-cluster --hosts nombre_host_hadb,nombre_host_hadb FirstCluster

    Sustituya la variable nombre_host_hadb por el nombre de host de la máquina donde se va a ejecutar la HADB. Si está utilizando una única máquina, deberá indicar su nombre dos veces.

    asadmin stop-node-agent hostname

    asadmin stop-domain domain1

  3. Detenga el agente de administración de HADB utilizando uno de los siguientes métodos:
  4. En una instalación de Java Enterprise System:

    1. Cambie al directorio /etc/init.d:
    2. cd /etc/init.d

    3. Ejecute el siguiente comando para detener el agente:
    4. ./ma-initd stop

      En una instalación de Application Server independiente:

    5. Acceda al directorio bin de HADB en la instalación de Application Server:
    6. cd dir_instalación/hadb/4/bin

    7. Ejecute el siguiente comando para detener el agente:
    8. ./ma-initd stop

      En este momento, todos los procesos relacionados con Sun Java System Application Server deben estar detenidos.

  5. Desinstale Application Server.
  6. En una instalación de Java Enterprise System, ejecute var/sadm/prod/entsys/uninstall y siga los pasos indicados en el asistente para la desinstalación.

    En una instalación de Application Server independiente, ejecute dir_instalación/uninstall y siga los pasos indicados en el asistente para la desinstalación.

  7. Si ha creado una nueva instancia de Web Server para este ejercicio, elimínela:
    1. Inicie sesión en la consola de administración de Web Server.
    2. Detenga la instancia.
    3. Elimine la instancia.
  8. Para desinstalar Web Server, ejecute el programa de desinstalación desde dir_instalación_Web_Server.

Opción 2: Eliminación del clúster de ejemplo

Para eliminar sólo FirstCluster (el clúster de ejemplo de alta disponibilidad) y la aplicación de ejemplo usada durante este ejercicio:

  1. Detenga los procesos de Application Server y limpie la configuración:
  2. asadmin stop-cluster FirstCluster

    asadmin remove-ha-cluster --hosts nombre_host_hadb,nombre_host_hadb FirstCluster

    Sustituya la variable nombre_host_hadb por el nombre de host de la máquina donde se va a ejecutar la HADB. Si está utilizando una única máquina, deberá indicar su nombre dos veces.

    asadmin disable-http-lb-server FirstCluster

    asadmin delete-http-lb-ref --config MyLbConfig FirstCluster

    asadmin delete-http-lb-config MyLbConfig

    asadmin delete-instance i1

    asadmin delete-instance i2

    asadmin delete-cluster FirstCluster

    asadmin undeploy clusterjsp

  3. Detenga la instancia de Web Server que actúa como equilibrador de carga:
  4. dir_instalación_Web_Server/https-nombre_host/stop

  5. Cambie el nombre del archivo loadbalancer.xml ubicado en dir_instalación_Web_Server/https-nombre_host/config a loadbalancer.xml.sav
  6. Detenga el agente de administración de HADB utilizando uno de los siguientes métodos:
  7. En una instalación de Java Enterprise System:

    1. Cambie al directorio /etc/init.d:
    2. cd /etc/init.d

    3. Ejecute el siguiente comando para detener el agente:
    4. ./ma-initd stop

      En una instalación de Application Server independiente:

    5. Acceda al directorio bin de HADB en la instalación de Application Server:
    6. cd dir_instalación/hadb/4/bin

    7. Ejecute el siguiente comando para detener el agente:
    8. ./ma-initd stop

En esta sección se ha instalado, configurado e iniciado la HADB y se ha configurado un clúster y una aplicación para utilizar la alta disponibilidad. También ha realizado la limpieza de forma que el equipo esté preparado para otro trabajo.

¡Enhorabuena! Ha finalizado la Guía de inicio rápido de Application Server.


Más información

Hay disponibles más recursos para aprender y utilizar el software Application Server. Por ejemplo:



Anterior     


Nº de referencia: 819-1252.   Copyright 2004-2005 Sun Microsystems, Inc. All rights reserved.