Tarefas de Definição de Perfil do Aplicativo

Tarefas são denominadas unidades de trabalho. Elas são o mecanismo pelo qual o ambiente de tempo de execução determina quais políticas de intenção de acesso aplicar quando os dados de um bean de entidade for carregado do sistema de backend.

Os perfis de aplicativos permitem que os desenvolvedores configurem um bean de entidade com vários critérios de intenção de acesso; se houver n instâncias de perfis em um determinado aplicativo, cada bean poderá ser configurado com até n critérios de intenção de acesso.

Uma tarefa é associada a uma transação ou ActivitySession no início da unidade de trabalho. A tarefa, que não pode ser alterada durante a existência da unidade de trabalho, está sempre disponível em qualquer lugar no escopo dessa unidade de trabalho para aplicar a política de intenção de acesso configurada para essa unidade de trabalho específica.

Se um aplicativo corporativo for configurado para usar perfis do aplicativo em qualquer parte do aplicativo, o perfil do aplicativo estará ativo e as configurações de intenção de acesso no nível do método serão ignoradas quando unidades de trabalho forem associadas a tarefas conhecidas pelo aplicativo.

Se um bean de entidade for carregado em uma unidade de trabalho que não está associada a uma tarefa ou for associada a uma tarefa que não está associada a um perfil de aplicativos, a configuração da intenção de acesso no nível do bean ou da intenção de acesso no nível do método é aplicada. Se uma unidade de trabalho for associada a uma tarefa que esteja configurada com um perfil de aplicativo, a configuração de intenção de acesso no nível do bean do perfil de aplicativo apropriado será aplicada.

Nota: A configuração do perfil do aplicativo são os dados de configuração do escopo do aplicativo. Se qualquer módulo Enterprise Javabeans (EJB) contiver uma configuração de perfil do aplicativo, todos os outros módulos EJB serão regulados implicitamente pelo serviço de Configuração de Perfil do Aplicativo mesmo se eles não contiverem dados de configuração do perfil do aplicativo.

Por exemplo, um aplicativo tem dois módulos EJB: EJBModule1 e EJBModule2.

O EJBModule1 tem um perfil do aplicativo denominado AppProfile1. Esse AppProfile1 é registrado por uma tarefa denominada task1. Essa task1 torna-se uma tarefa conhecida pelo aplicativo e é acatada quando associada a uma unidade de trabalho dentro desse aplicativo. Com a presença de qualquer tarefa conhecida pelo aplicativo, as configurações de intenção de acesso no nível do método são ignoradas e apenas as configurações de intenção de acesso no nível do bean são aplicadas.

O EJBModule2 não contém nenhum dado de configuração do perfil do aplicativo. Todos os beans de entidade não são configurados com a intenção de acesso no nível do bean explicitamente, mas alguns métodos têm configurações de intenção de acesso no nível do método. Se um bean de entidade no EJBModule2 for carregado em uma unidade de trabalho que está associada à task1, a configuração da intenção de acesso no nível do bean será aplicada e a configuração de intenção de acesso no nível do método será ignorada. Como a intenção de acesso no nível do bean não é definida explicitamente, a intenção de acesso no nível do bean padrão, que é wsPessimisticUpdate-WeakestLockAtLoad, é aplicada.

A tarefa ativa depende do mecanismo da unidade de trabalho atual. Se a unidade de trabalho atual for uma transação global, a tarefa será o nome associado a essa transação. Se a transação global não tiver sido denominada ao ser iniciada, não haverá nenhuma tarefa ativa em nenhum lugar no escopo dessa transação.

Se a unidade de trabalho atual for uma transação local associada a um ActivitySession, a tarefa será o nome associado a esse ActivitySession. Se o ActivitySession não tiver sido denominado ao ser iniciado, não haverá nenhuma tarefa ativa para nenhuma transação local ligada a esse ActivitySession. Se a unidade de trabalho atual for uma transação local que não esteja associada a um ActivitySession, a tarefa será o nome associado a essa transação local. Se a transação local não foi associada a uma tarefa ao ser iniciada, não haverá nenhuma tarefa ativa durante a existência dessa transação local. Em outras palavras, a tarefa ativa será a tarefa associada à unidade de trabalho no encadeamento que está coordenando recursos do banco de dados. Se a unidade de trabalho de controle não foi associada a uma tarefa ao ser iniciada, não haverá nenhuma tarefa ativa no escopo dessa unidade de trabalho.

Por exemplo, considere um aplicativo de distrito escolar que chama por meio de um bean de sessão para interagir com os registros dos alunos. Um método do bean de sessão permite que os administradores modifiquem os registros dos alunos; outro método suporta pedidos de alunos para visualizar seus próprios registros. Sem o perfil do aplicativo, as duas tarefas operariam de forma anônima e o ambiente de tempo de execução não conseguiria distinguir o trabalho operando em nome de uma tarefa ou da outra. Para otimizar o aplicativo, um desenvolvedor pode configurar um dos métodos do bean de sessão com a tarefa "updateRecords" e o outro método do bean de sessão com a tarefa "readRecords". Quando registrada com um perfil de aplicativo que tem o bean aluno configurado com a intenção de acesso de trava apropriada, a tarefa "updateRecords" é assegurada de que não está travando transações desnecessariamente, necessárias apenas para ler os registros. Para obter informações adicionais sobre os relacionamentos entre tarefas e unidades de trabalho, consulte Considerações sobre Tarefas e Unidades de Trabalho.

As tarefas pode ser configuradas para serem gerenciadas pelo contêiner ou para serem estabelecidas programaticamente pelo aplicativo. As tarefas gerenciadas por contêiner podem ser configuradas em servlets, arquivos JSP (JavaServer Pages), clientes aplicativos e nos métodos de EJB (Enterprise JavaBeans). As tarefas gerenciadas por contêiner configuradas estão associadas apenas a unidades de trabalho iniciadas pelo contêiner depois que o nome da tarefa é configurado. As tarefas gerenciadas pelo aplicativo podem ser configuradas em todos os componentes J2EE. No caso de enterprise beans, elas devem ser transações gerenciadas por beans."

boas práticas: Se você selecionar o atributo de Modo de Compatibilidade 5.x na página do console Serviço de Perfil do Aplicativo, as tarefas configuradas nos aplicativos J2EE 1.3 não serão necessariamente associadas a unidades de trabalho e podem, arbitrariamente, ser aplicadas e substituídas. Este não é um modo de operação recomendado e pode conduzir a conflitos inesperados durante o acesso ao banco de dados. As tarefas não são comunicadas em pedidos entre aplicativos que estão em execução no Compatibility Mode 5.x do Perfil do Aplicativo e de aplicativos que não estão em execução no modo de compatibilidade.

Para que um cliente da Versão 6.x interaja com aplicativos em execução no Modo de Compatibilidade do Perfil do Aplicativo 5.x, você deve configurar a propriedade do sistema appprofileCompatibility como true no processo de cliente. Isto pode ser feito especificando a opção -CCDappprofileCompatibility=true ao chamar o comando launchClient.


Ícone que indica o tipo de tópico Tópico de Conceito



Ícone de registro de data e hora Última atualização: last_date
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=capp_tasks
Nome do arquivo: capp_tasks.html