Creación de servicios personalizados

Puede crear uno o varios servicios personalizados para un servidor de aplicaciones. Cada servicio personalizado define una clase que se carga e inicializa cuando se inicia y concluye el servidor. Cada una de estas clases debe implementar la interfaz com.ibm.websphere.runtime.CustomService. Después de crear un servicio personalizado, utilice la consola administrativa para configurar el servicio personalizado para los servidores de aplicaciones.

Acerca de esta tarea

[z/OS]Los servicios personalizados se ejecutan en sirvientes y no en controladores. Por ejemplo, como se puede iniciar más de un sirviente en la vida de un servidor y estos sirvientes se pueden iniciar mucho después de activar el servidor (controlador), según lo necesite WLM, se ejecuta un servicio personalizado durante el inicio de cada sirviente.

[z/OS]Si tiene que definir un punto de enlace que se ejecute cuando se inicia y concluye un servidor, cree una clase de servicio personalizado y luego utilice la consola administrativa para configurar una instancia de servicio personalizado. Cuando se inicia el servidor de aplicaciones, se iniciará e inicializará el servicio personalizado.

[AIX Solaris HP-UX Linux Windows][IBM i]Para definir una rutina que se ejecute cuando se inicie y concluya un servidor o agente de nodo, desarrolle una clase de servicio personalizado y, a continuación, configure una instancia de servicio personalizado. Cuando se inicia el servidor de aplicaciones o agente de nodo, se iniciará e inicializará el servicio personalizado.

A continuación aparece una lista de restricciones que se aplican a la implementación de servicios personalizados del producto. La mayoría de estas restricciones se aplican sólo al método de inicialización:
  • Los métodos initialize y shutdown deben devolver el control al programa de ejecución.
  • No se asignará ningún trabajo en la instancia del servidor hasta que se devuelvan todos los métodos de inicialización del servicio personalizado.
  • Sólo se llama una vez a los métodos initialize y shutdown en cada servicio y, una vez para cada proceso del sistema operativo que constituye la instancia del servidor.
  • No se admite la inicialización de datos estáticos de nivel de proceso sin abandonar el proceso.
  • Sólo se admiten las operaciones de RMLT (transacción local del gestor de recursos) JDBC. Deben completarse todas las unidades de trabajo (UOW) antes de que se realice la devolución de los métodos.
  • No se admite la creación de hebras.
  • No se admite la creación de sockets y de E/S que no sea la E/S de archivos.
  • No se da soporte a la ejecución del código Java EE (Java™ Platform, Enterprise Edition), como código cliente, servlets y enterprise beans.
  • No está disponible la interfaz de JTA (Java Transaction API).
  • Esta característica está disponible únicamente en procesos de servidor Java EE y procesos de servidor genéricos distribuidos.
  • Cuando el programa de ejecución intenta llamar al método shutdown (conclusión), no hay garantía de que se llame a éste método antes de que termine el proceso.
  • La operaciones JNDI que solicitan recursos no están soportadas.

Procedimiento

  1. Desarrolle una clase de servicio que implemente la interfaz com.ibm.websphere.runtime.CustomService.
    La interfaz com.ibm.websphere.runtime.CustomService incluye métodos de inicialización y de conclusión. El servidor de aplicaciones utiliza el método de inicialización para pasar las propiedades al servicio personalizado. Estas propiedades pueden ser:
    • Una propiedad que proporciona el nombre de un archivo externo que contiene información de configuración para el servicio. Puede utilizar la propiedad externalConfigURLKey para recuperar esta información.
    • Las propiedades que pueden incluir cualquier par de nombre y valor que se almacena para el servicio, junto con otros datos de configuración de administración del sistema para el servicio.

    Ambos métodos, inicialización y conclusión, declaran que pueden crear una excepción, aunque no se haya definido ninguna subclase de excepción específica. Si cualquier método crea una excepción, el tiempo de ejecución anota cronológicamente la excepción, inhabilita el servicio personalizado y continúa iniciando el servidor.

  2. Configure el servicio personalizado.

    En la consola administrativa, pulse Servidores > Tipos de servidor > WebSphere Application Servers > nombre_servidor y, a continuación, bajo Infraestructura de servidor, pulse Servicios personalizados > Nuevos. A continuación, en la página de valores para una instancia del servicio personalizado, cree una configuración de servicio personalizado para un servidor de aplicaciones o agente de nodo existente, proporcionando el nombre de la clase implementada. Si la clase de servicio personalizado requiere un archivo de configuración, especifique el nombre plenamente cualificado de la vía de acceso a ese archivo de configuración en el campo externalConfigURL. Este nombre de archivo se pasa a la clase de servicio personalizado.

    Para invocar una biblioteca nativa desde el servicio personalizado, proporcione el nombre de vía de acceso en el campo Classpath además de los nombres de vía de acceso que se utilizan para ubicar las clases y los archivos JAR del servicio personalizado. Este procedimiento añade el nombre de vía de acceso al cargador de clases de extensión de WebSphere Application Server, que permite al servicio personalizado ubicar y cargar correctamente la biblioteca nativa.

  3. Detenga el servidor de aplicaciones y reinícielo.

    [AIX Solaris HP-UX Linux Windows][IBM i]Si está desarrollando un servicio personalizado para un servidor de aplicaciones, detenga el servidor de aplicaciones y luego reinicie el servidor.

    [AIX Solaris HP-UX Linux Windows][IBM i]Si está desarrollando un servicio personalizado para un agente de nodo, detenga y, a continuación, reinicie el proceso del agente de nodo. En la consola administrativa, pulse Administración del sistema > Agentes de nodo, seleccione el agente de nodo que desea detener y, a continuación, pulse Detener. Para reiniciar el agente de nodo, seleccione el agente de nodo que desea reiniciar y pulse Reiniciar.

    [z/OS]Detenga el servidor de aplicaciones y luego reinicie el servidor.

Resultados

Cada servicio personalizado define una clase que se carga e inicializa cuando se inicia y concluye el servidor.

[AIX Solaris HP-UX Linux Windows][IBM i]El servicio personalizado se carga e inicializa cuando el servidor o el agente de nodo se inicia y detiene.

[z/OS]El servicio personalizado se carga e inicializa cuando el servicio se inicia y concluye.

Ejemplo

Como se ha mencionado anteriormente, la clase de los servicios personalizados debe implementar la interfaz com.ibm.websphere.runtime.CustomService. Además, la clase debe implementar los métodos de inicialización y conclusión. El ejemplo siguiente, muestra el código que declara la clase ServerInit que implementa el servicio personalizado. Este código presupone que la clase del servicio personalizado necesita un archivo de configuración. Este ejemplo también incluye el código que accede al archivo de configuración externo. Si la clase no requiere un archivo de configuración, no tiene que incluir la porción de configProperties de este código.
public class ServerInit implements com.ibm.websphere.runtime.CustomService
{
/**
* El programa de tiempo de ejecución del servidor de aplicaciones llama al método de inicialización cuando
* se inicia el servidor. El objeto Properties que pasa el servidor de aplicaciones
* a este método debe contener toda la información de configuración que 
* necesita este servicio para inicializarse correctamente.
*
* @param configProperties java.util.Properties
*/
    static final java.lang.String externalConfigURLKey =
       "com.ibm.websphere.runtime.CustomService.externalConfigURLKey";
          
    static String ConfigFileName="";

    public void initialize(java.util.Properties configProperties) throws Exception
    {
        if (configProperties.getProperty(externalConfigURLKey) != null)
        {
           ConfigFileName = configProperties.getProperty(externalConfigURLKey);
        }

       // Implementar el resto del método de inicialización
    }
/**
* La ejecución del servidor de aplicaciones llama al método de conclusión cuando
* el servidor comienza el proceso de conclusión.
*
    public void shutdown() throws Exception
    {
        // Se implementa aquí el método de conclusión
    }

Qué hacer a continuación

[AIX Solaris HP-UX Linux Windows][IBM i]Compruebe el servidor de aplicaciones o agente de nodo para asegurarse de que los métodos de inicialización y conclusión del servicio personalizado se han ejecutado como esperaba.

[z/OS]Compruebe el servidor de aplicaciones para asegurarse de que los métodos de inicialización y conclusión del servicio personalizado se han ejecutado como esperaba.


Icon that indicates the type of topic Task topic



Timestamp icon Last updated: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=trun_customservice
File name: trun_customservice.html