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


Desenvolvendo um Aplicativo em Batch Simples

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

Antes de Começar

Antes de iniciar esta tarefa, é necessário configurar seu ambiente.É possível precisar configurar a propriedade customizada com.ibm.websphere.ejbcontainer.expandCMPCFJNDIName antes de desenvolver um aplicativo em lote do Compute Grid. Consulte Propriedades customizadas da Java virtual machine para obter informações de configuração.

Sobre Esta Tarefa

Esta tarefa de amostra considera que o usuário esteja usando o Rational Application Developer. Outras ferramentas de desenvolvimento podem ser utilizadas também.

Procedimento

  1. Crie um novo projeto do aplicativo corporativo chamado PostingsSample2.
    1. Inclua um novo módulo de projeto EJB (Enterprise JavaBeans). Isso cria um novo arquivo Enterprise ARchive (EAR) e o projeto Enterprise EJB.
    2. Inclua o batchruntime.jar no caminho de construção Java para o projeto PostingsSample2EJB. O batchruntime.jar está localizado na pasta <WAS_HOME>/lib.
    3. Considere que haja uma classe Java existente, AccountOp, que é um objeto Java que tem dois métodos de interface pública, creditAccount(..) e debitAccount(..). Estes métodos são chamados a partir do bean em lote conforme apropriado. Importe esta classe do espaço de trabalho ou grave uma classe de chamada em lote.
  2. Crie a classe BatchStep. O bean em lote é uma entidade que é herdada de uma classe de etapa em lote abstrata. Execute as seguintes subetapas para criar a etapa da tarefa abstrata PostingSample2Step:
    1. No projeto PostingsSample2EJB, crie a classe Java abstrata, PostingSample2Step, que é herdada da BatchJobStepInterface.
    2. Inclua o BatchJobStepInterface.
    3. Torne a classe abstrata.
  3. Crie o bean em lote. As seguintes subetapas descrevem como criar o bean em lote manualmente. O bean em lote reutiliza as classes BatchJobStepLocalInterface, BatchJobStepKey e BatchJobStepLocalHome do modelo de programação fornecido. Essas classes não são recriadas. Apenas a implementação do bean em lote é 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. Se maneira semelhante, inclua o stepID, digite java.lang.String e insira este nome do tipo no campo Chave.
    10. Selecione BeanSuperclass. Crie um tipo de correspondência de PostingStep2. Esta ação cria o novo EJB, mas apenas a classe de bean EJB é exibida nos projetos. A interface local, interface inicial e a classe de chave são selecionadas nas classes fornecidas pelo modelo de programação.
    11. Edite o descritor de implementação. Faça as seguintes alterações no arquivo ejb-jar.xml para o 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, crie todos os métodos do PostingsSample2Data conforme Necessário.
      3. Edite o nome da JNDI de Ligações do WebSphere no 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. Crie o bean de sessão da tarefa em lote. A tarefa em lote é um bean de sessão que é declarado no descritor de implementação, mas não tem nenhuma classe gerada porque as classes são todas parte do tempo de execução.
    1. No arquivo ejb-jar.xml, na guia Bean, clique em Incluir para criar o novo EJB de sessão, PostingsJob2.
    2. Altere o Tipo de transação para bean.
    3. Nas Classe bean, Interface inicial remota e 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

      Note que nenhuma classe nova é gerada porque todas as classes existem no ambiente de tempo de execução. Você está apenas declarando o bean de Sessão de Tarefa no descritor de implementação.

    4. Edite o nome da Java Naming and Directory Interface (JNDI) de ligações do WebSphere no ejb/com/ibm/ws/batch/PostingsSample2Job.
    5. Inclua uma referência EJB no PostingsSample2Job.
    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, clique em Avançar e forneça as seguintes informações:
      • Nome: wm/BatchWorkManager
      • Tipo: Selecione commonj.work.WorkManager
      • Autenticação: Contêiner
      • Escopo de compartilhamento: Compartilhável
    8. Edite o nome da JNDI do wm/BatchWorkManger no wm/default.
    9. Salve e feche o arquivo ejb-jar.xml.
  5. Crie o fluxo de dados de entrada em lote. Poderá ser fluxos de entrada e/ou saída zero, 1 ou n. Neste exemplo, há uma leitura de fluxo de entrada de um arquivo e nenhum fluxo de saída. A saída é gravada no console. As classes Batch Data Stream (BDS) são Plain Old Java Object (POJO). Para criar o fluxo de entrada, conclua as seguintes etapas:
    1. Crie uma nova classe no pacote com.ibm.ws.batch.sample, chamada PostingsSample2InputStream.
    2. Implemente a interface BatchDataStream. Esta ação cria a nova classe de fluxo PostingSample2Input. É possível incluir as implementações posteriormente.
  6. Crie Posting2Class para representar um registro do fluxo de entrada. Esta classe é a representação do objeto de um registro no fluxo de entrada do lote. Isso é construído ao ler um registro do BDS de entrada e é transmitido para o bean em lote. 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. Inclua implementações nas classes.
    1. Agora inclua implementações nos beans PostingSample2Data, PostingSample2Step e PostingSample2InputStream como nos arquivos de classes anexadas. 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. Após incluir as classes de implementação, é possível implementar o EJB.



Conceitos relacionados
Etapas da Tarefa em Lote
O Modelo de Programação em Lote
Bean do Controlador de Lote
Tópico de Tarefa    

Termos de Uso | Feedback

Última atualização: 24/09/2009 14h24min35s EDT
http://publib.boulder.ibm.com/infocenter/wxdinfo/v6r1m1/index.jsp?topic=/com.ibm.websphere.gridmgr.doc/info/scheduler/tbgridtutorial2.html