WebSphere Extended Deployment Compute Grid, Version 6.1.1
             Sistemas operativos: AIX, HP-UX, Linux, Solaris, Windows,


Desarrollo de una aplicación de proceso por lotes sencilla

En este tema se describe cómo grabar una aplicación de proceso por lotes sencilla.

Antes de comenzar

Antes de comenzar esta tarea, debe configurar el entorno. Es posible que deba configurar la propiedad personalizada com.ibm.websphere.ejbcontainer.expandCMPCFJNDIName antes de desarrollar una aplicación de proceso por lotes Compute Grid. Consulte Propiedades personalizadas de la máquina virtual Java para obtener información de configuración.

Acerca de esta tarea

En esta tarea de ejemplo se supone que el usuario utiliza Rational Application Developer. También se pueden utilizar otras herramientas de desarrollo.

Procedimiento

  1. Cree un nuevo proyecto de aplicación de empresa titulado PostingsSample2.
    1. Añada un nuevo módulo de proyecto EJB (Enterprise JavaBeans). Se crea un nuevo archivo EAR (Enterprise ARchive) y proyecto de Enterprise EJB.
    2. Añada batchruntime.jar a la vía de acceso de construcción Java del proyecto PostingsSample2EJB. El archivo batchruntime.jar se encuentra en la carpeta <INICIO_WAS>/lib.
    3. Suponga que hay una clase Java existente, AccountOp, que es un objeto Java que tiene dos métodos de interfaz públicos, creditAccount(..) y debitAccount(..). Se llama a estos métodos desde el bean de proceso por lotes según sea adecuado. Importe esta clase del espacio de trabajo o grabe una clase que llame a un proceso por lotes.
  2. Cree la clase BatchStep. El bean de proceso por lotes es un bean de entidad que se hereda de una clase BatchStep abstracta. Efectúe los siguientes subpasos para crear el paso de trabajo abstracto, PostingSample2Step:
    1. En el proyecto PostingsSample2EJB, cree la clase Java abstracta, PostingSample2Step, que se hereda de BatchJobStepInterface.
    2. Añada la interfaz BatchJobStepInterface.
    3. Cree la clase abstracta.
  3. Cree el bean de proceso por lotes. En los siguientes pasos se describe cómo crear manualmente el bean de proceso por lotes. El bean de proceso por lotes reutiliza la interfaz BatchJobStepLocalInterface, BatchJobStepKey y las clases BatchJobStepLocalHome del modelo de programación proporcionado. Estas clases no se vuelven a crear. Sólo se genera la implementación del bean de proceso por lotes.
    1. En el proyecto PostingSample2EJB, cree un nuevo EJB CMP, titulado PostingsSample2Data.
    2. Para la clase de interfaz de factoría local, seleccione BatchJobStepLocalHomeInterface.
    3. Para la clase de interfaz local, seleccione BatchJobStepLocalInterface.
    4. Deseleccione Utilizar tipo de atributo de clave única para la clase de clave.
    5. Para la clase de clave, seleccione BatchJobStepKey.
    6. Elimine el ID de atributo CMP.
    7. En el atributo CMP, añada los dos atributos CMP, jobID y stepID de tipo serie.
    8. Añada jobID de nombre y java.lang.String de tipo. Seleccione Clave.
    9. De forma similar, añada stepID, escriba java.lang.String e inserte este nombre de tipo en el campo Clave.
    10. Seleccione BeanSuperclass. Cree un tipo coincidente de PostingStep2. Esta acción crea el nuevo EJB, pero en los proyectos sólo se mostrará la clase de bean EJB. La interfaz local, la interfaz de factoría y la clase de clave se seleccionan de clases proporcionadas del modelo de programación.
    11. Edite el descriptor de despliegue. Realice estos cambios en el archivo ejb-jar.xml para PostingSample2Data.
      1. En la pestaña Bean, cambie el nombre de la JNDI de la fábrica de conexiones CMP por jdbc/lree y el tipo de autorización del contenedor con Por fábrica de conexiones.
      2. En la pestaña Ensamblado, para las transacciones del contenedor, haga que todos los métodos de PostingsSample2Data sean Necesario.
      3. Cambie el nombre JNDI en Enlaces de WebSphere porejb/com/ibm/ws/batch/sample/PostingsSample2Data.
    12. Guarde y cierre el descriptor de despliegue. Como antes, añadirá más adelante la implementación del EJB.
  4. Cree el bean de sesión de trabajo por lotes. El trabajo por lotes es un bean de sesión que se declara en el descriptor de despliegue, pero no tiene generadas clases porque son parte del tiempo de ejecución.
    1. En el archivo ejb-jar.xml, en la pestaña Bean, pulse Añadir para crear el nuevo EJB de sesión, PostingsJob2.
    2. Cambie Tipo de transacción por bean.
    3. En Clase de bean, Interfaz inicial remota e Interfaz remota, escriba las siguientes series:
      1. Clase de bean: com.ibm.ws.batch.BatchJobControllerBean
      2. Interfaz remota: com.ibm.ws.batch.BatchJobController
      3. Interfaz de factoría remota: com.ibm.ws.batch.BatchJobControllerHome

      Observe que no se genera ninguna clase nueva porque existen todas las clases en el motor de ejecución. Sólo se declara el bean de sesión de trabajo en el descriptor de despliegue.

    4. Cambie el nombre JNDI (Java Naming and Directory Interface) de enlaces de WebSphere Java Naming and Directory Interface (JNDI) por ejb/com/ibm/ws/batch/PostingsSample2Job.
    5. Añada una referencia de EJB a PostingsSample2Job.
    6. Seleccione el bean PostingsSample2Data y añada el nombre ejb/PostingsSample2Data.

      Seleccione el tipo de referencia local.

    7. Cree la referencia de gestor de trabajo.
      1. En la pestaña Referencias, en el bean PostingSample2Job, pulse Añadir. Seleccione Referencia de recurso, pulse Siguiente y proporcione la siguiente información:
      • Nombre: wm/BatchWorkManager
      • Tipo: seleccione commonj.work.WorkManager
      • Autenticación: Container
      • Ámbito de compartición: Shareable
    8. Cambie el nombre JNDI de wm/BatchWorkManger por wm/default.
    9. Guarde y cierre el archivo ejb-jar.xml.
  5. Cree la secuencia de datos por lotes de entrada. Puede ser cero, 1 o n corrientes de entrada y/o salida. En este ejemplo, hay una corriente de entrada que lee de un archivo y no hay una corriente de salida. Se graba la salida en la consola. Las clases de secuencia de datos por lotes (BDS) son objetos POJO (Plain Old Java Object). Para crear la corriente de entrada, efectúe lo siguiente:
    1. Cree una nueva clase en el paquete com.ibm.ws.batch.sample, denominada PostingsSample2InputStream.
    2. Implemente la interfaz BatchDataStream. Esta acción crea la nueva clase de corriente PostingSample2Input. Puede añadir más adelante las implementaciones.
  6. Cree Posting2Class para representar un registro de la corriente de entrada. Esta clase es la representación de objeto de un registro en la corriente de entrada por lotes. Esta se construye al leer un registro de la corriente BDS de entrada pasada en el bean de proceso por lotes. Esta clase es como un bean de datos o de carga que contiene atributos y getters y setters correspondientes, de los campos en la corriente de entrada.
    1. Cree una nueva clase denominada Posting2 que implementa la interfaz serializable. Se pueden añadir implementaciones a ésta más adelante.
  7. Añada implementaciones a las clases.
    1. Ahora añada implementaciones al bean PostingSample2Data, PostingSample2Step y PostingSample2InputStream como en los archivos de clase asociados. Este ejemplo se mantiene sencillo desde un punto de vista de proceso para resaltar los pasos relacionados con el desarrollo de una nueva aplicación de proceso por lotes. Después de añadir las clases de implementación, puede desplegar el EJB.



Conceptos relacionados
Pasos de trabajo por lotes
Modelo de programación por lotes
Bean de controlador por lotes
Tema de tarea    

Condiciones de uso | Comentarios

Última actualización: 22-sep-2009 09H47' EDT
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r1m1/index.jsp?topic=/com.ibm.websphere.gridmgr.doc/info/scheduler/tbgridtutorial2.html