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

Desenvolvendo um Aplicativo em Batch Simples

Este tópico descreve como gravar um aplicativo em batch simples.

Antes de começar

Antes de iniciar esta tarefa, é necessário configurar seu ambiente.

Por que e quando realizar esta tarefa

Esta tarefa de amostra assume que o usuário esteja utilizando o RAD (Rational Application Developer). Outras ferramentas de desenvolvimento também podem ser utilizadas.
  1. Crie um novo projeto do aplicativo corporativo chamado PostingsSample2.
    1. Inclua um novo módulo de projeto EJB (Enterprise JavaBeans). Isto cria um novo arquivo EAR e projeto EJB.
    2. Inclua BATCH_RUNTIME no Caminho de Construção Java para o projeto PostingsSample2EJB.
    3. Suponha que já exista uma classe Java, AccountOp, um objeto Java que tenha dois métodos de interface pública, creditAccount(..) e debitAccount(..). Estes métodos são chamados a partir do bean em batch conforme apropriado. Importe esta classe do espaço de trabalho ou grave uma classe de chamada em batch.
  2. Crie a classe BatchStep. O bean em batch é um bean de entidade herdado de uma classe abstrata de Etapa em Batch. Faça o seguinte para criar a etapa da tarefa abstrata PostingSample2Step:
    1. No projeto PostingsSample2EJB, crie uma classe Java abstrata PostingSample2Step que seja herdada de BatchJobStepInterface.
    2. Inclua o BatchJobStepInterface.
    3. Torne a classe abstrata.
  3. Crie o Bean em Batch (EJB de Entidade). Estas etapas descrevem como criar o bean em batch manualmente. O Bean em Batch reutiliza as classes BatchJobStepLocalInterface, BatchJobStepKey e BatchJobStepLocalHome a partir do modelo de programação fornecido; estas classes não são recriadas. Apenas a implementação do Bean em Batch é gerada.
    1. No projeto PostingSample2EJB, crie um novo EJB CMP chamado PostingsSample2Data.
    2. Para a classe de interface home local, selecione BatchJobStepLocalHomeInterface.
    3. Para a classe de interface local, selecione BatchJobStepLocalInterface.
    4. Cancele a seleção de Utilizar um Tipo de Atributo de Chave Único para a Classe de Chave.
    5. Para a classe de chave, selecione BatchJobStepKey.
    6. Remova o ID do atributo CMP.
    7. No atributo CMP, inclua os dois atributos CMP, jobID e stepID de cadeia de tipos.
    8. Inclua jobID como o nome e java.lang.String como o tipo. Selecione Chave.
    9. De forma semelhante, inclua stepID, digite java.lang.String e torne-o o campo Chave.
    10. Selecione BeanSuperclass. Crie um tipo de correspondência de PostingStep2. Isto cria o novo EJB, mas apenas a classe do Bean EJB é exibida nos projetos. A interface local, interface home e classe de chave são coletadas das classes fornecidas pelo modelo de programação.
    11. Editando o descritor de implementação. Faça as seguintes alterações no ejb-jar.xml para PostingSample2Data.
      1. Na guia Bean, edite o nome JNDI da connection factory CMP para jdbc/lree e o tipo de Autorização do Contêiner para Per_Connection_Factory.
      2. Na guia Montagem, para as transações de contêiner, torne todos os métodos (*), do PostingsSample2Data, se Necessário.
      3. Edite o nome JNDI em ligações do WebSphere para ejb/com/ibm/ws/batch/sample/PostingsSample2Data.
    12. Salve e feche o descritor de implementação. Como anteriormente, inclua a implementação para o EJB posteriormente.
  4. Criar o Bean de Sessão de Tarefa do Batch A Tarefa do batch é um bean de sessão declarado no descritor de implementação, mas não possui classes geradas, porque faz parte do tempo de execução.
    1. No ejb-jar xml, na guia Bean, clique em Incluir para criar um novo EJB de Sessão, nomeie-o PostingsJob2.
    2. Altere o tipo de Transação para Bean.
    3. Na classe do Bean, na interface home remota e na interface remota, digite as seguintes cadeias:
      1. Classe do bean: com.ibm.ws.batch.BatchJobControllerBean
      2. Interface remota: com.ibm.ws.batch.BatchJobController
      3. Interface home remota: com.ibm.ws.batch.BatchJobControllerHome
      Observe que não é gerada nenhuma classe nova; isto porque todas as classes existem no tempo de execução. Estamos apenas declarando o bean de Sessão da Tarefa no descritor de implementação.
    4. Edite o nome JNDI de Ligações do WebSphere para: ejb/com/ibm/ws/batch/PostingsSample2Job
    5. Inclua uma referência no PostingsSample2Job de tipo referência de EJB.
    6. Selecione o Bean PostingsSample2Data e inclua o nome: ejb/PostingsSample2Data Selecione o tipo de referência local.
    7. Crie a referência do Gerenciador de trabalho.
      1. Na guia Referências, no bean PostingSample2Job, clique em Incluir. Selecione Referência de Recurso e clique em Avançar.
      2. Nome: wm/BatchWorkManager
      3. Tipo: Selecione commonj.work.WorkManager
      4. Autenticação: Contêiner
      5. Escopo de Compartilhamento: Compartilhável
    8. Edite o nome JNDI (Java Naming and Directory Interface) do wm/BatchWorkManger para wm/default.
    9. Salve e feche o ejb-jar.xml.
  5. Criando o Fluxo de Dados de Batch de Entrada Pode haver zero, 1 ou n fluxos de entrada e/ou saída. Neste exemplo, existe um InputStream lendo a partir de um arquivo e nenhum fluxo de saída. A saída é gravada no console. As classes BDS são POJO. Para criar o fluxo de entrada, faça o seguinte:
    1. Crie uma nova classe no pacote com.ibm.ws.batch.sample, chamada PostingsSample2InputStream.
    2. Implemente a Interface BatchDataStream. Isto cria a nova classe de Fluxo PostingSample2Input. É possível incluir as implementações posteriormente.
  6. Crie a Classe Posting2 para representar um registro do Fluxo de Entrada. Esta classe é a representação do objeto de um registro no Fluxo de Saída de Batch. Ela é construída durante a leitura de um registro a partir do BDS de Entrada e transmitida para o Bean de Batch. Esta classe é semelhante a um bean de dados ou de carregamento que contém atributos e getters e setters correspondentes dos campos no Fluxo de Entrada.
    1. Crie uma nova classe denominada Posting2 que implementa a interface Serializável. As implementações podem ser incluídas nela posteriormente.
  7. Incluir Implementações nas Classes
    1. Agora inclua implementações em PostingSample2DataBean, PostingSample2Step e PostingSample2InputStream como nos arquivos de classe anexados. Este exemplo é mantido simples de um ponto de vista de processamento para realçar as etapas envolvidas no desenvolvimento de um novo aplicativo em batch. Quando as classes de implementação forem incluídas, será possível implementar o EJB.

O que fazer depois

Na árvore de navegação do console administrativo, expanda Operações de Tempo de Execução e selecione Gerenciamento de Tarefas. Verifique se no painel à direita existe uma tabela de tarefas vazia sem mensagens de erro.



Tópico de Tarefa    

Termos de Uso | Feedback Última atualização: Mar 21, 2006 12:48:50 PM 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. Todos os Direitos Reservados.
Este centro de informações é desenvolvido em tecnologia Eclipse. (http://www.eclipse.org)