Utilización de beans de arranque

Existen dos tipos de beans de arranque: los beans de arranque de aplicaciones y los beans de arranque de módulos.

Acerca de esta tarea

Deprecated feature Deprecated feature: Las prestaciones suministradas con beans de sesión singleton de arranque (especificación EJB 3.1) hacen que la función de arranque propietaria de WebSphere Application Server esté en desuso.depfeat

Un bean de arranque de módulo es un bean de sesión que se carga cuando se inicia un archivo Jar de EJB. Los beans de arranque de módulo permiten que las aplicaciones de Java™ Platform Enterprise Edition (Java EE) ejecuten la lógica empresarial automáticamente, siempre que un módulo EJB se inicie o se detenga con normalidad. Un bean de arranque de aplicación es un bean de sesión que se carga cuando se inicia una aplicación. Los beans de arranque de aplicación permiten que las aplicaciones Java EE ejecuten la lógica empresarial automáticamente, siempre que se inicie o se detenga una aplicación con normalidad.

Los beans de arranque son de gran utilidad cuando se utilizan junto con características de bean asíncronos. Por ejemplo, un bean de arranque puede crear un objeto de alarma que utilice JMS (Java Message Service) para publicar periódicamente mensajes de pulsaciones sobre un tema conocido. Esto permite a los clientes, u otras aplicaciones de servidor, determinar si la aplicación está disponible o no. Consulte el artículo Cómo habilitar una aplicación para que espere a que se inicie un motor de mensajería si utiliza el proveedor de JMS predeterminado.

Procedimiento

  1. Para los beans de arranque de aplicación, utilice la interfaz de ubicación inicial, com.ibm.websphere.startupservice.AppStartUpHome, para designar un bean como bean de arranque de aplicación. Para los beans de arranque de módulo, utilice la interfaz de ubicación inicial, com.ibm.websphere.startupservice.ModStartUpHome, para designar un bean como bean de arranque de módulo.
  2. Para los beans de arranque de aplicación, utilice la interfaz remota, com.ibm.websphere.startupservice.AppStartUp, para definir los métodos start() y stop() en el bean. Para los beans de arranque de módulo, utilice la interfaz remota, com.ibm.websphere.startupservice.ModStartUp, para definir los métodos start() y stop() en el bean.

    Cuando se inicia la aplicación o el módulo, se llama al método start() del bean de arranque, y contiene la lógica empresarial que se tiene que ejecutar durante el inicio de la aplicación o el módulo.

    El método start() devuelve un valor booleano. True indica que la lógica empresarial del método start() se ha ejecutado satisfactoriamente. False indica que la lógica empresarial del método start() no se ha podido ejecutar. Un valor devuelto de False también indica al servidor de aplicaciones que se ha terminado anormalmente el arranque de la aplicación.

    Cuando se inicia la aplicación o el módulo, se llama a los métodos stop() del bean de arranque, que contienen la lógica empresarial que se tiene que ejecutar durante la detención de la aplicación o el módulo. Las excepciones generadas por el método stop() sólo se registran. No se lleva a cabo ninguna otra acción.

    Los métodos start() y stop() no deben utilizar nunca el atributo de transacción TX_MANDATORY. Una transacción global no existe en la hebra cuando se invocan los métodos start() o stop(). Se puede utilizar cualquier otro atributo TX_*. Si se utiliza TX_MANDATORY, se registra una excepción, y el inicio de la aplicación termina anormalmente.

    Los métodos start() y stop() en la interfaz remota utilizan la modalidad Run-As. La modalidad Run-As especifica la información de credencial que debe utilizar el servicio de seguridad para determinar los permisos que tiene un principal en varios recursos. Si la seguridad está activada, es necesario definir la modalidad Run-As en todos los métodos llamados. La identidad del bean sin este valor no está definida.

    No hay restricciones sobre qué código pueden ejecutar los métodos start() y stop(), ya que el modelo completo de programación de Application Server está disponible para esos métodos.

  3. Utilice un entero como la propiedad de entorno opcional, wasStartupPriority, para especificar el orden de inicio de varios beans de arranque en el mismo archivo JAR (Java Archive). Si se encuentra la propiedad de entorno, pero el tipo no es el correcto, el arranque de la aplicación termina anormalmente. Si no se ha especificado ningún valor, se utiliza la prioridad predeterminada 0. Se recomienda especificar la propiedad de prioridad. Los beans con una prioridad especificada se ordenan según esta propiedad. Se ejecutan primero los beans con prioridades numéricas más bajas. Los beans que tienen la misma prioridad se ejecutan en un orden no definido. Todas las prioridades deben ser enteros positivos. Los beans se detienen en el orden contrario a su prioridad de inicio. Los valores de prioridad para los beans de arranque de aplicación se excluyen mutuamente. Todos los módulos se inician antes de que se declare la aplicación como "iniciada", por lo tanto, los métodos start() para los beans de arranque de módulos de la aplicación se invocarán antes que los métodos start() para los beans de arranque de aplicación. De la misma manera, todos los métodos stop() de los beans de arranque de aplicación para un archivo JAR (Java Archive) específico se invocarán antes que los métodos stop() de los beans de arranque de módulo para ese mismo archivo JAR.
    Nota: El entero de la propiedad de entorno wasStartupPriority no se puede definir mediante un mandato o la consola administrativa. Este entero de propiedad de entorno es una entrada de entorno de EJB que va a definir un desarrollador de aplicaciones y no un administrador. Defina el valor de entero en el archivo ejb-jar.xml tal como se indica en el ejemplo siguiente:
    <env-entry>  <env-entry-name>wasStartupPriority</env-entry-name>
      <env-entry-type>java.lang.Integer</env-entry-type>
      <env-entry-value>3</env-entry-value>
    </env-entry>
    Al igual que con cualquier otra entrada de entorno de EJB, defina un valor wasStartupPriority individual para cada EJB.
  4. Para los beans de arranque de aplicación, el orden en que se arrancan los módulos EJB puede ajustarse mediante el valor Peso inicial asociado a cada módulo
  5. Para controlar quien puede invocar los métodos de bean de arranque mediante la seguridad de WebSphere siga los pasos que se detallan a continuación:
    1. Defina los permisos de método para los métodos Start() y Stop() , de la misma forma que lo haría con cualquier módulo EJB. (Consulte Definir permisos de método para módulos EJB.)
    2. Asegúrese de que el usuario correlacionado con el rol de seguridad definido para los métodos del bean de arranque sea el mismo usuario que se ha definido como ID de usuario de servidor en el registro de usuarios.

Qué hacer a continuación

Consulte los valores del servicio de beans de arranque.

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=tasb_confstb
File name: tasb_confstb.html