Desarrollo de una aplicación sencilla que realice gran cantidad de cálculos
Puede escribir una sencilla aplicación de cálculos intensivos utilizando un controlador de trabajos de cálculos intensivos, la línea de mandatos o la herramienta Apache ANT.
Procedimiento
- Cree un trabajo que realice gran cantidad de cálculos usando un controlador de trabajos que realice
una gran cantidad de cálculos.
- Cree un paso de trabajo de cálculos intensivos.
- Cree una clase Java™ que implemente la interfaz com.ibm.websphere.ci.CIWork.
- Implemente la lógica empresarial.
- Opcional: Para aplicaciones por lotes, proporcione un escucha
de trabajos.
Proporcione una implementación para la interfaz com.ibm.websphere.batch.listener.joblistener para añadir inicialización y limpieza adicionales de trabajos y pasos. Especifique el escucha de trabajo en el xJCL utilizando el elemento listener a nivel de trabajo.
El método beforeJob() de escucha de trabajos se invoca antes de invocar que ningún artefacto de usuario. El método afterJob() de escucha de trabajos se invoca después de invocar el último artefacto de usuario. El método beforeStep() de escucha de trabajos se invoca antes que ningún artefacto de usuario relacionado con un paso. El método afterStep() de escucha de trabajos se invoca cómo último artefacto de usuario relacionado con un paso. Cada vez que se invoca el escucha de trabajos, anota un mensaje en el registro de trabajo.
- Opcional: Para aplicaciones por lotes, obtenga el
contexto de paso de trabajo.
JobStepContext ctx= JobStepContextMgr.getContext();
La clase de servicio JobStepContextMgr permite al paso de trabajo por lotes obtener una referencia a su objeto JobStepContext. El contexto de paso de trabajo proporciona las siguientes prestaciones:- Acceso a la información que identifica de forma exclusiva el contexto en el que se ejecuta el paso de trabajo por lotes actual, por ejemplo, el ID de trabajo
- Un área de datos de usuario donde se puede pasar información específica de aplicaciones entre los métodos de la infraestructura de programación por lotes durante toda la vida del paso de trabajo por lotes
- Un área de datos de usuario transitorio área donde se puede pasar información específica de aplicación entre pasos
- Un área de datos de usuario persistente donde se almacena información específica de aplicación entre acciones de punto de control/reinicio
Puede utilizar la clase de ayuda PersistentMap para simplificar el almacenamiento de tipos básicos, como por ejemplo boolean y double, en el área de datos de usuario persistente del contexto de paso de trabajo.
- Declare un controlador de trabajos de gran cantidad de cálculos.
- Añada un bean de sesión sin estado a su descriptor de despliegue y haga referencia a la
clase de implementación que proporciona el producto.
Hágalo mediante la especificación de com.ibm.ws.ci.CIControllerBean como clase de bean. Haga esta especificación sólo una vez por cada aplicación que realice gran cantidad de cálculos.
- Utilice com.ibm.ws.ci.CIControllerHome para la clase de interfaz de inicio remota y com.ibm.ws.ci.CIController para la clase de interfaz remota.
- Añada un bean de sesión sin estado a su descriptor de despliegue y haga referencia a la
clase de implementación que proporciona el producto.
- Configure el descriptor de despliegue de EJB.
- Configure una referencia de recurso sobre el bean de controlador al WorkManager wm/CIWorkManager predeterminado del tipo commonj.work.WorkManager.
- Cree un paso de trabajo de cálculos intensivos.
- Cree trabajos de gran cantidad de cálculos usando la línea de mandatos.
- Cree un paso de trabajo de cálculos intensivos.
- Cree una clase Java que implemente la interfaz com.ibm.websphere.ci.CIWork.
- Implemente la lógica empresarial.
- Para aplicaciones por lotes, obtenga el
contexto de paso de trabajo.
JobStepContext ctx= JobStepContextMgr.getContext();
La clase de servicio JobStepContextMgr permite al paso de trabajo por lotes obtener una referencia a su objeto JobStepContext. El contexto de paso de trabajo proporciona las siguientes prestaciones:- Acceso a la información que identifica de forma exclusiva el contexto en el que se ejecuta el paso de trabajo por lotes actual, por ejemplo, el ID de trabajo
- Un área de datos de usuario donde se puede pasar información específica de aplicaciones entre los métodos de la infraestructura de programación por lotes durante toda la vida del paso de trabajo por lotes
- Un área de datos de usuario transitorio área donde se puede pasar información específica de aplicación entre pasos
- Un área de datos de usuario persistente donde se almacena información específica de aplicación entre acciones de punto de control/reinicio
Puede utilizar la clase de ayuda PersistentMap para simplificar el almacenamiento de tipos básicos, como por ejemplo boolean y double, en el área de datos de usuario persistente del contexto de paso de trabajo.
- Abra un indicador de mandatos y asegúrese de que el directorio donde se encuentra el programa ejecutable Java se incluya en la variable PATH para que pueda ejecutar el mandato Java.
- Emita un mandato Java.
java -jar pgcbatchpackager.jar -appname=<nombre_aplicación> -jarfile=<archivo jar que contiene las clases de paso POJO> -earfile=<nombre del archivo ear de salida sin .ear> [-utilityjars=<lista de los jar de utilidad separados por caracteres punto y coma>] [-debug] [-gridjob]
Por ejemplo, para los trabajos por lotes, emita el mandato:java –jar pgcbatchpackager.jar –appname=SimpleCI –jarfile=SimpleCIEJBs.jar -earfile=SimpleCI –gridjob=true
- Cree un paso de trabajo de cálculos intensivos.
- Cree trabajos de gran cantidad de cálculos usando ANT.
- Cree el paso de trabajo que realiza gran cantidad de cálculos.
- Cree una clase Java que implemente la interfaz com.ibm.websphere.ci.CIWork.
- Implemente la lógica empresarial.
- Para aplicaciones por lotes, obtenga el
contexto de paso de trabajo.
JobStepContext ctx= JobStepContextMgr.getContext();
La clase de servicio JobStepContextMgr permite al paso de trabajo por lotes obtener una referencia a su objeto JobStepContext. El contexto de paso de trabajo proporciona las siguientes prestaciones:- Acceso a la información que identifica de forma exclusiva el contexto en el que se ejecuta el paso de trabajo por lotes actual, por ejemplo, el ID de trabajo
- Un área de datos de usuario donde se puede pasar información específica de aplicaciones entre los métodos de la infraestructura de programación por lotes durante toda la vida del paso de trabajo por lotes
- Un área de datos de usuario transitorio área donde se puede pasar información específica de aplicación entre pasos
- Un área de datos de usuario persistente donde se almacena información específica de aplicación entre acciones de punto de control/reinicio
Puede utilizar la clase de ayuda PersistentMap para simplificar el almacenamiento de tipos básicos, como por ejemplo boolean y double, en el área de datos de usuario persistente del contexto de paso de trabajo.
- Para un trabajo de cálculos intensivos, asegúrese de que pgcbatchpackager.jar esté en la vía de acceso a clases.
- Declare la tarea. Utilice el mandato siguiente para declarar la tarea:
<taskdef name="pgcpackager" classname="com.ibm.ws.batch.packager.PGCPackager" classpath="${FEBaseDir}/grid.pgc.packager/build/lib/pgcbatchpackager.jar" />
- Después de la compilación de los archivos Java en la aplicación, invoque la
tarea pgcpackager.
<pgcpackager appname="<nombre_aplic>" earFile="<nombre de ubicación del archivo EAR a generar>" jarfile="ubicación del archivo JAR de POJO" gridJob="true"/>
- Cree el paso de trabajo que realiza gran cantidad de cálculos.
Resultados
Qué hacer a continuación
Subtopics
Modelo de programación con una actividad de proceso intensiva
Las aplicaciones con una cantidad de proceso intensivo son aplicaciones que realizan trabajo con una actividad de proceso intensiva que no se adapta con comodidad al paradigma tradicional de solicitud y respuesta de Java Platform, Enterprise Edition (Java EE).


http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=tgrid_bgridtutorialci
File name: tgrid_bgridtutorialci.html