WebSphere Extended Deployment, Version 6.0.x     Sistemas operativos: AIX, HP-UX, Linux, Solaris, Windows, z/OS

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 empezar

Antes de comenzar esta tarea, debe configurar el entorno.

Por qué y cuándo se efectúa esta tarea

En esta tarea de ejemplo se supone que el usuario utiliza RAD (Rational Application Developer). Se pueden utilizar otras herramientas de desarrollo también.
  1. Cree un nuevo proyecto de aplicación de empresa titulado PostingsSample2.
    1. Añada un nuevo módulo de proyecto EJB (Enterprise JavaBeans). Esto creará un nuevo archivo EAR y un proyecto EJB.
    2. Añada BATCH_RUNTIME a la Vía de acceso de construcción Java del proyecto PostingsSample2EJB.
    3. Suponga que hay una clase Java existente, AccountOp, 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 hereda de una clase BatchStep abstracta. Realice lo siguiente para crear el paso de trabajo abstracto PostingSample2Step:
    1. En el proyecto PostingsSample2EJB, cree una clase Java abstracta PostingSample2Step que hereda de la interfaz BatchJobStepInterface.
    2. Añada la interfaz BatchJobStepInterface.
    3. Cree la clase abstracta.
  3. Cree el bean de proceso por lotes (EJB de entidad). En estos 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; no se vuelven a crear estas clases. 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, especifique java.lang.String e inclúyalo en el campo Clave.
    10. Seleccione BeanSuperclass. Cree un tipo coincidente de PostingStep2. Se creará el nuevo EJB, pero sólo se mostrará la clase de bean EJB en los proyectos. La interfaz local, la interfaz de factoría y la clase de clave se seleccionan de clases proporcionadas del modelo de programación.
    11. Edición del descriptor de despliegue. Realice estos cambios en el archivo ejb-jar.xml para PostingSample2Data.
      1. En la pestaña Bean, edite el nombre de la JNDI de la fábrica de conexiones CMP con 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. Edite el nombre JNDI bajo Enlaces de WebSphere con ejb/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 motor de ejecución.
    1. En el ejb-jar xml, de la pestaña Bean, pulse Añadir para crear un nuevo EJB de sesión, denomínelo PostingsJob2.
    2. Cambie el Tipo de transacción con Bean.
    3. En la clase de bean, la interfaz de factoría remota y la interfaz remota, especifique las series siguientes:
      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; esto es 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. Edite el nombre de la JNDI de Enlaces de WebSphere con: ejb/com/ibm/ws/batch/PostingsSample2Job
    5. Añada una referencia al PostingsSample2Job de referencia de EJB de tipo.
    6. Seleccione el bean PostingsSample2Data y añada el nombre: ejb/PostingsSample2Data Seleccione el tipo de referencia local.
    7. Cree la referencia del Gestor de trabajo.
      1. En la pestaña Referencias, en el bean PostingSample2Job, pulse Añadir. Seleccione Referencia de recurso y pulse Siguiente.
      2. Nombre: wm/BatchWorkManager
      3. Tipo: seleccione commonj.work.WorkManager
      4. Autenticación: Container
      5. Ámbito de compartición: Shareable
    8. Edite el nombre de la JNDI (Java Naming and Directory Interface) del wm/BatchWorkManger con wm/default.
    9. Guarde y cierre ejb-jar.xml.
  5. Creación de la corriente de datos por lotes de entrada Puede haber 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 BDS son POJO. 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. Se creará la nueva clase de corriente PostingSample2Input. Puede añadir más adelante las implementaciones.
  6. Cree la clase Posting2 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 a PostingSample2DataBean, 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 que se añaden las clases de implementación, puede desplegar el EJB.

Qué hacer a continuación

En el árbol de navegación de la consola administrativa, expanda Operaciones de tiempo de ejecución y seleccione Gestión de trabajos. Verifique que en el panel de la derecha, hay una tabla de trabajo vacía sin mensajes de error.



Tema de tarea    

Condiciones de uso | Comentarios Última actualización: Mar 14, 2006 11:03:53 AM EST
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r0/index.jsp?topic=?topic=/com.ibm.websphere.xd.doc/info/scheduler/tbgridtutorial2.html

© Copyright IBM 2005, 2006. Reservados todos los derechos.
Este centro de información se ha realizado con tecnología de Eclipse. (http://www.eclipse.org)