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
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.
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.
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.
- 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
Resultados
El servicio personalizado se carga e inicializa cuando el servidor o el agente de nodo se inicia y detiene.
El servicio personalizado se carga e inicializa cuando el servicio se inicia y concluye.
Ejemplo
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
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.
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.