Desenvolvendo um Aplicativo de Cálculo Intenso
É possível gravar um aplicativo de cálculo intenso simples usando um controlador de tarefas de cálculo intenso, a linha de comandos ou a ferramenta Apache ANT.
Procedimento
- Crie uma tarefa de cálculo intenso usando um controlador de tarefas de cálculo intenso.
- Crie uma etapa de tarefa de cálculo intenso.
- Crie uma classe Java™ que implemente a interface com.ibm.websphere.ci.CIWork.
- Implemente a lógica de negócios.
- Opcional: Para aplicativos em lote, forneça um listener da tarefa.
Forneça uma implementação para a interface com.ibm.websphere.batch.listener.JobListener para incluir uma inicialização adicional e limpe as tarefas e etapas. Especifique o listener da tarefa no xJCL usando o elemento do listener no nível da tarefa.
O método beforeJob() do listener de tarefa é chamado antes de qualquer artefato do usuário ser chamado. O método afterJob() do listener da tarefa é chamado após o último artefato do usuário ser chamado. O método beforeStep() do listener da tarefa é chamado antes de qualquer artefato do usuário relacionado à etapa. O método afterStep() do listener da tarefa é chamado como o último artefato do usuário relacionado à etapa. Cada vez que o listener da tarefa é chamado, ele registra uma mensagem no log da tarefa.
- Opcional: Para aplicativos em lote,
obtenha o contexto da etapa da tarefa.
JobStepContext ctx= JobStepContextMgr.getContext();
A classe de serviço JobStepContextMgr ativa a etapa da tarefa em lote para obter uma referência para seu objeto JobStepContext. O contexto da etapa da tarefa fornece os recursos a seguir:- Acesso a informações que identificam exclusivamente o contexto no qual a etapa de tarefa em lote atual é executada, por exemplo, o ID da tarefa
- Uma área de dados do usuário em que informações específicas do aplicativo podem ser transmitidas entre os métodos de estrutura de programação em lote durante a vida da etapa da tarefa em lote
- Uma área de dados do usuário temporária em que informações específicas do aplicativo podem ser transmitidas em etapas
- Uma área de dados do usuário persistente em que informações específicas do aplicativo são armazenadas em ponto de verificação/reinicialização
É possível usar a classe auxiliar PersistentMap para simplificar o armazenamento de tipos básicos, tais como booleano e duplo, na área de dados persistentes do usuário do contexto da etapa da tarefa.
- Declare um controlador de tarefa de cálculo intenso.
- Inclua um bean de sessão stateless em seu descritor de implementação e aponte para a classe de implementação que o
produto fornece.
Faça isso especificando o com.ibm.ws.ci.CIControllerBean como classe de bean. Siga essa especificação somente uma vez por aplicativo de cálculo intenso.
- Use com.ibm.ws.ci.CIControllerHome para a classe de interface inicial remota e com.ibm.ws.ci.CIController para a classe de interface remota.
- Inclua um bean de sessão stateless em seu descritor de implementação e aponte para a classe de implementação que o
produto fornece.
- Configure o descritor de implementação EJB.
- Configure uma referência de recurso no bean do controlador no WorkManager wm/CIWorkManager padrão do tipo commonj.work.WorkManager.
- Crie uma etapa de tarefa de cálculo intenso.
- Crie tarefas de cálculo intenso usando a linha de comandos.
- Crie uma etapa de tarefa de cálculo intenso.
- Crie uma classe Java que implemente a interface com.ibm.websphere.ci.CIWork.
- Implemente a lógica de negócios.
- Para aplicativos em lote,
obtenha o contexto da etapa da tarefa.
JobStepContext ctx= JobStepContextMgr.getContext();
A classe de serviço JobStepContextMgr ativa a etapa da tarefa em lote para obter uma referência para seu objeto JobStepContext. O contexto da etapa da tarefa fornece os recursos a seguir:- Acesso a informações que identificam exclusivamente o contexto no qual a etapa de tarefa em lote atual é executada, por exemplo, o ID da tarefa
- Uma área de dados do usuário em que informações específicas do aplicativo podem ser transmitidas entre os métodos de estrutura de programação em lote durante a vida da etapa da tarefa em lote
- Uma área de dados do usuário temporária em que informações específicas do aplicativo podem ser transmitidas em etapas
- Uma área de dados do usuário persistente em que informações específicas do aplicativo são armazenadas em ponto de verificação/reinicialização
É possível usar a classe auxiliar PersistentMap para simplificar o armazenamento de tipos básicos, tais como booleano e duplo, na área de dados persistentes do usuário do contexto da etapa da tarefa.
- Abra um prompt de comandos e assegure-se que o diretório em que o programa executável Java está localizado esteja incluso na variável PATH para que você possa executar o comando Java.
- Emita um comando Java.
java -jar pgcbatchpackager.jar -appname=<application name> -jarfile=<jarfile containing POJO step classes> -earfile=<name of the output ear file without .ear> [-utilityjars=<semicolon separated list of utility jars>] [-debug] [-gridjob]
Por exemplo, para tarefas em lote, emita o comando:java –jar pgcbatchpackager.jar –appname=SimpleCI –jarfile=SimpleCIEJBs.jar -earfile=SimpleCI –gridjob=true
- Crie uma etapa de tarefa de cálculo intenso.
- Crie tarefas de cálculo intenso usando ANT.
- Crie a etapa de tarefa de cálculo intenso.
- Crie uma classe Java que implemente a interface com.ibm.websphere.ci.CIWork.
- Implemente a lógica de negócios.
- Para aplicativos em lote,
obtenha o contexto da etapa da tarefa.
JobStepContext ctx= JobStepContextMgr.getContext();
A classe de serviço JobStepContextMgr ativa a etapa da tarefa em lote para obter uma referência para seu objeto JobStepContext. O contexto da etapa da tarefa fornece os recursos a seguir:- Acesso a informações que identificam exclusivamente o contexto no qual a etapa de tarefa em lote atual é executada, por exemplo, o ID da tarefa
- Uma área de dados do usuário em que informações específicas do aplicativo podem ser transmitidas entre os métodos de estrutura de programação em lote durante a vida da etapa da tarefa em lote
- Uma área de dados do usuário temporária em que informações específicas do aplicativo podem ser transmitidas em etapas
- Uma área de dados do usuário persistente em que informações específicas do aplicativo são armazenadas em ponto de verificação/reinicialização
É possível usar a classe auxiliar PersistentMap para simplificar o armazenamento de tipos básicos, tais como booleano e duplo, na área de dados persistentes do usuário do contexto da etapa da tarefa.
- Para uma tarefa de processamento intensivo de informações, assegure-se de que pgcbatchpackager.jar esteja no caminho de classe.
- Declare a tarefa. Use o seguinte comando para declarar a tarefa:
<taskdef name="pgcpackager" classname="com.ibm.ws.batch.packager.PGCPackager" classpath="${FEBaseDir}/grid.pgc.packager/build/lib/pgcbatchpackager.jar" />
- Após compilar os arquivos Java em seu aplicativo, chame a tarefa pgcpackager.
<pgcpackager appname="<appname>" earFile="<nome do local do arquivo EAR a gerar>" jarfile="location of the POJO jar file" gridJob="true"/>
- Crie a etapa de tarefa de cálculo intenso.
Resultados
O que Fazer Depois
Subtópicos
Modelo de Programação de Cálculo Intenso
Aplicativos de cálculo intenso são aplicativos que executam trabalho de computação intensiva que não se adaptam confortavelmente ao paradigma tradicional de pedido e resposta do Java Platform, Enterprise Edition (Java EE).


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