Grupo de mandatos EJB

El grupo de mandatos EJB del objeto AdminTask proporciona mandatos que se pueden utilizar para manipular enterprise beans.

removeAutomaticEJBTimers

Las aplicaciones o módulos utilizan anotaciones o XML para indicar al servidor de aplicaciones que debe crear automáticamente temporizadores EJB.

Los temporizadores creados automáticamente se conservan en la instancia del planificador asociada con el servidor que la aplicación o el módulo ejecuta en el momento en que se crea el temporizador EJB automático. Las planificaciones se configuran para cada servidor y, por consiguiente, es posible que cada servidor de la topología utilice una instancia del planificador exclusiva. En este caso, la instancia del planificador específica de cada servidor soporta los temporizadores EJB que se ejecutan en dicho servidor.

Cada instancia de planificador está asociada con un conjunto de tablas de base de datos. Si tiene varias instancias del planificador, configure cada instancia del planificador con un prefijo exclusivo para garantizar que la instancia se correlacione con un conjunto exclusivo de tablas de base de datos.

Cuando la aplicación o el módulo que han solicitado los temporizadores EJB automáticos se eliminan de un servidor, los temporizadores EJB automáticos deben eliminarse de la instancia del planificador correspondiente. Si la aplicación o el módulo se ha instalado en varios servidores y cada uno de estos servidores utiliza una instancia del planificador exclusiva, los temporizadores se deben eliminar de cada una de estas instancias del planificador. En otras palabras, los temporizadores EJB creados automáticamente se eliminan en cada servidor.

En algunos casos, la eliminación o actualización de la aplicación o el módulo provoca la eliminación de los temporizadores EJB creados automáticamente de la instancia del planificador. En este caso, no es necesaria ninguna acción del usuario.

No obstante, en otros casos, la eliminación o actualización de la aplicación o el módulo no provoca la eliminación de los temporizadores EJB creados automáticamente de la instancia del planificador. En este caso, debe eliminar manualmente los temporizadores EJB utilizando el mandato removeAutomaticEJBTimers.

El mandato sólo se admite en una modalidad conectada. En una topología de despliegue de red, el gestor de despliegue, el agente de nodo y el servidor gestionado que contiene la instancia del planificador deben estar en ejecución. En una topología de base, el servidor autónomo debe estar en ejecución.

En un escenario de configuración de Rational Application Developer poco estricto, debe eliminar manualmente los temporizadores EJB creados automáticamente. Además, los temporizadores EJB creados mediante programación, que no son los mismos que los temporizadores EJB creados automáticamente, no se eliminan automáticamente ni se eliminan mediante este mandato.

En una topología de despliegue de red, cuando un único módulo sólo está instalado en un subconjunto de los servidores de la topología, los temporizadores creados automáticamente asociados con dicho módulo sólo se deben eliminar de la instancia de planificador asociada con dicho subconjunto de servidores. No es necesario limpiar una instancia del planificador correspondiente a un servidor que no tenga el módulo instalado.

Objeto de destino: Ninguno

Parámetros necesarios:
-appName
El nombre de la aplicación que solicitó los temporizadores EJB creados automáticamente que desea eliminar. (String, obligatorio)

-serverName
El nombre del servidor que ejecuta la aplicación o módulo que contiene los temporizadores EJB creados automáticamente que desea eliminar. Este parámetro representa el nombre lógico de un servidor de aplicaciones, no un nombre de host. (String, obligatorio)
Parámetros opcionales:
-schedulerJNDIName
Este parámetro representa el nombre JNDI de la instancia del planificador que persiste los temporizadores EJB creados automáticamente que desea eliminar.

Una instancia de servidor siempre se configura para utilizar una instancia del planificador concreta para dar soporte los temporizadores EJB creados automáticamente. Puede configurar explícitamente qué instancia del planificador se utiliza, puede optar por no configurar explícitamente una instancia del planificador. En este último caso, se utiliza una instancia del planificador predeterminada.

Si la instancia del planificador que contiene los temporizadores EJB creados automáticamente que desea eliminar es la misma instancia del planificador que está configurada actualmente para el servidor, puede omitir este parámetro. En este caso, el mandato examina la configuración, descubre la instancia del planificador que está configurada actualmente, y la utiliza.

Sin embargo, si la instancia del planificador que está configurada actualmente no es la que contiene los temporizadores EJB que desea eliminar, deberá especificar el nombre JNDI de la instancia del planificador que contiene estos temporizadores. (String, opcional)

-nodeName
Nombre del nodo que contiene el servidor. (String, obligatorio)
-moduleName
El nombre del módulo que solicitó los temporizadores EJB creados automáticamente que desea eliminar. Si desea eliminar todos los temporizadores creados automáticamente en la aplicación, independientemente del módulo en el que están definidos, este parámetro se omite. Este parámetro sólo se especifica si desea eliminar los temporizadores creados automáticamente solicitados por un módulo de la aplicación, pero no los temporizadores solicitados por otro módulo de la misma aplicación. (String, opcional)

Valor de retorno: Ninguno

La siguiente información permite determinar cuándo se necesita este mandato:
  • WebSphere Application Server intenta eliminar los temporizadores EJB creados automáticamente cuando se cumplen todas las condiciones siguientes:
    • Se realiza una de las acciones siguientes:
      • Desinstalación de aplicaciones
      • Actualización de aplicaciones
      • Desinstalación de módulos
      • Actualización de módulos
    • La acción se ha realizado en una modalidad conectada (no wsadmin -conntype none).
    • Los servidores necesarios se estaban ejecutando en el momento de la acción.
      • Para una topología de despliegue de red, el gestor de despliegue, el agente de nodo y el servidor gestionado que contienen los temporizadores EJB creados automáticamente se estaban ejecutando.
      • Para una topología base, el servidor autónomo se estaba ejecutando.
    • Se ha realizado la acción de seguimiento correcta.
      • Para una topología de despliegue de red, guarda los cambios y los sincroniza con el agente de nodo. Si guarda los cambios pero no los sincroniza, los temporizadores EJB creados automáticamente no se eliminarán. Los temporizadores EJB creados automáticamente sólo se eliminan durante el proceso de sincronización.
      • Para una topología base, guarda los cambios.
    • La base de datos que da soporte a la instancia del planificador se estaba ejecutando.
  • WebSphere Application Server no elimina los temporizadores EJB creados automáticamente cuando se produce cualquiera de las condiciones siguientes:
    • Se realiza cualquier acción que no sea una actualización o desinstalación de una aplicación o módulo.
    • La acción (aunque se trate de una desinstalación/actualización de aplicación/módulo) se ha realizado en modalidad desconectada.
    • Los servidores necesarios no estaban en ejecución.
      • Para una topología de despliegue de red, el gestor de despliegue, agente de nodo o servidor gestionado no se estaba ejecutando.
      • Para una topología base, el servidor autónomo no se estaba ejecutando
    • No se ha realizado la acción de seguimiento correcta.
      • Para una topología de despliegue de red, no se ha realizado la acción de guardar o sincronizar.
      • Para una topología base, no se ha realizado la acción de guardar.
    • La base de datos que da soporte a la instancia del planificador no se estaba ejecutando.
Si WebSphere Application Server encuentra un error al intentar eliminar temporizadores EJB creados automáticamente de un servidor, se graba un aviso en el archivo de registro.

Si se produce un error, o si el servidor de aplicaciones no intenta eliminar temporizadores EJB creados automáticamente, o si no está seguro de si los temporizadores EJB creados automáticamente se han eliminado, emita manualmente el mandato removeAutomaticEJBTimers para asegurarse de que los temporizadores EJB creados automáticamente se eliminen. Si los temporizadores creados automáticamente se han eliminado realmente de la instancia del planificador, la ejecución del mandato es innecesaria, pero no resulta perjudicial.

Si se ejecuta en un entorno en clúster y el clúster contiene varios nodos, y cada uno de estos nodos contiene un servidor que se correlaciona con la misma instancia del planificador a nivel de clúster, entonces los temporizadores creados automáticamente sólo deben eliminarse de uno de estos servidores. Esto se debe a que la instancia del planificador compartida se actualiza y todos los servidores que utilizan esta instancia del planificador compartida ven el cambio.

Como resultado, si un servidor de un nodo no se está ejecutando y recibe un aviso de registro que indica que los temporizadores automáticos no se han podido eliminar de dicho servidor, pero sabe que el servidor comparte una instancia de planificador a nivel de clúster con un servidor de un nodo diferente que se ha borrado satisfactoriamente, no es necesaria ninguna acción del usuario porque la instancia del planificador compartida ya se ha actualizado.

Esto también es verdadero si hay varios servidores en un clúster y todos ellos forman parte del mismo nodo y comparten una instancia de planificador con un único nivel de clúster y uno o varios de los miembros del clúster no se ejecutan. En este caso, el servidor de aplicaciones emite un aviso de registro de que los temporizadores automáticos no se han podido eliminar de los servidores en cuestión. No obstante, si sabe que comparten una instancia del planificador común y uno de los miembros del clúster se ha borrado satisfactoriamente, no es necesaria ninguna acción del usuario porque la instancia del planificador compartida ya se ha actualizado.

Si está ejecutando en una topología de despliegue de red y tiene varios servidores, el tipo de planificador utilizado (predeterminado frente a configurado de forma personalizada) afecta al rendimiento por lo que respecta a la limpieza del planificador. El planificador EJBContainer predeterminado es exclusivo por servidor. Si utiliza la instancia de planificador EJBContainer predeterminada y tiene cinco servidores, esto significa que tiene cinco instancias del planificador exclusivas y los temporizadores automáticos se deben eliminar de los cinco cuando se actualice o se elimine la aplicación. No obstante, si utiliza una sola instancia del planificador configurada de forma personalizada y compartida, los temporizadores automáticos sólo se deben eliminar una vez, de dicha instancia del planificador.

Ejemplo 1

Topología:

  • Gestor de despliegue en ejecución en la estación de trabajo A.
  • NodeAgent en ejecución en la estación de trabajo B. El nodo se denomina Node01.
  • Servidor gestionado server1 en ejecución en la estación de trabajo C.
  • Servidor gestionado server2 en ejecución en la estación de trabajo D.
  • La seguridad está habilitada.
  • server2 está configurado actualmente para utilizar la misma instancia del planificador que contiene los temporizadores.

Antecedentes:

La aplicación testApp se ha desinstalado en modalidad conectada desde la consola administrativa. Desea eliminar todos los temporizadores creados automáticamente de la aplicación, independientemente de qué módulo los haya solicitado.

El gestor de despliegue, el agente de nodo y los servidores server1 se estaban ejecutando, y los temporizadores EJB automáticos se han eliminado de server1. Sin embargo, server2 no se estaba ejecutando, por lo que los temporizadores EJB automáticos no se han eliminado de server2.

Ahora, debe eliminar manualmente los temporizadores EJB automáticos de server2.

Acción:
  • Utilizando Jacl, desde una sesión de wsadmin conectada en el gestor de despliegue, escriba la línea de código siguiente:
    $AdminTask removeAutomaticEJBTimers "-appName testApp -serverName server2 -nodeName Node01"
  • Utilizando Jython, desde una sesión de wsadmin conectada en el gestor de despliegue, escriba la línea de código siguiente:
    AdminTask.removeAutomaticEJBTimers('-appName testApp -serverName server2 -nodeName Node01')

Ejemplo 2

Topología:

  • El server1 autónomo que se ejecuta en la estación de trabajo A. El nodo se denomina Node01.
  • Está inhabilitada la seguridad administrativa.
  • server1 se configuró para utilizar la instancia del planificador jndi/sched_1 cuando los temporizadores EJB automáticos se creasen. Sin embargo, server1 está configurado actualmente para utilizar la instancia del planificador jndi/sched_2.

Antecedentes:

El módulo, mod1, de la aplicación, testApp, se ha desinstalado pero, debido a que server1 estaba configurado para utilizar la instancia jndi/sched_2 en el momento de la desinstalación, los temporizadores EJB automáticos no se han eliminado de la instancia del planificador jndi/sched_1.

Ahora, debe eliminar manualmente los temporizadores EJB automáticos de la instancia del planificador jndi/sched_1 en server1.

La aplicación contiene módulos, mod1 y mod2. Ambos módulos solicitaron temporizadores EJB creados automáticamente. El módulo mod2 aún está instalado y todavía se necesitan los temporizadores EJB creados automáticamente que solicitó. Sólo desea eliminar los temporizadores EJB creados automáticamente solicitados por mod1.

Acción:
  • Utilizando Jacl, desde una sesión de wsadmin conectada en el servidor autónomo, escriba la línea de código siguiente:
    $AdminTask removeAutomaticEJBTimers "-appName testApp -moduleName mod1 -serverName server1 -nodeName Node01 -schedulerJNDIName jndi/sched_1"
  • Utilizando Jython, desde una sesión de wsadmin conectada en el servidor autónomo, escriba la línea de código siguiente:
    AdminTask.removeAutomaticEJBTimers('-appName testApp -moduleName mod1 -serverName server1 -nodeName Node01 -schedulerJNDIName jndi/sched_1')

Icon that indicates the type of topic Reference topic



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