Análise de Perfil do Aplicativo
É possível utilizar perfis de aplicativos para identificar unidades de trabalho específicas para o ambiente de tempo de execução do produto. O tempo de execução pode adaptar seu suporte para os requisitos exatos dessa unidade de trabalho.
A definição de perfil do aplicativo requer conhecimento preciso de uma configuração transacional do aplicativo e a interação do aplicativo com seu estado persistente durante o período de cada transação.
É possível executar a análise no modo mundo fechado ou mundo aberto. Uma análise de mundo fechado supõe que todos os clientes possíveis do aplicativo estejam incluídos na an[alise e que a análise resultante estará completa e correta. Os resultados de uma análise de mundo fechado relata o conjunto de todas as transações que podem ser chamadas por um cliente da Web, JMS ou de aplicativo. Os resultados excluem muitas transações em potencial que nunca são executadas no tempo de execução.
Uma análise de mundo aberto supõe que nem todos os clientes estão disponíveis para análise ou que a análise não pode retornar resultados completos nem precisos. Uma análise de mundo aberto retorna o conjunto completo de transações possíveis.
Os resultados de uma análise persistem como uma configuração de definição de perfil do aplicativo. A ferramenta de montagem estabelece tarefas gerenciadas por contêiner para servlets, arquivos JSP (JavaServer Pages), aplicativos clientes e MDBs (Message Driven Beans). Os perfis de aplicativos para as tarefas são construídos com a intenção de acesso apropriada para as entidades listadas na transação representada pela tarefa. No entanto, na prática, há muitas situações em que a ferramenta retorna no máximo resultados incompletos. Nem todos os aplicativos são adequados para análise estática. Alguns padrões de fábrica e de comando possibilitam a determinação dos gráficos de chamada. A ferramenta não suporta a análise de ActivitySessions.
Você deve examinar os resultados da análise muito cuidadosamente. Em muitos casos, você deve modificá-los manualmente para atender os requisitos do aplicativo. No entanto, a ferramenta pode ser um local inicial efetivo para a maioria dos aplicativos e pode oferecer uma configuração completa e rápida dos perfis de aplicativos para alguns aplicativos.
A intenção de acesso é o único componente de tempo de execução que utiliza a funcionalidade de criação de perfil do aplicativo. Por exemplo, é possível configurar uma transação para carregar um bean de entidade com travas de atualização fortes e configurar outra transação para carregar o mesmo bean de entidade sem travas.
- Tarefas
- Uma tarefa é um nome configurável para uma unidade de trabalho. Unidade de trabalho neste caso significa uma transação ou uma ActivitySession. O nome da tarefa
geralmente é designado de forma declarada em um componente J2EE que pode iniciar uma
unidade de trabalho. Mais comumente, a tarefa é configurada em um método de um arquivo Enterprise JavaBeans declarado para transações gerenciadas por contêineres ou transações gerenciadas por beans. Qualquer unidade de trabalho que começa no escopo de uma tarefa configurada
está associada a esse nome de tarefa. Uma unidade de trabalho pode ser denominada apenas
quando é iniciada, e o nome não pode ser alterado durante a existência dessa unidade
de trabalho. Uma unidade de trabalho ignora qualquer configuração de nome de tarefa subsequente
em qualquer ponto após ter sido iniciada. A tarefa é utilizada durante a existência de sua unidade de
trabalho para identificar políticas configuradas específicas dessa unidade de trabalho.Nota: 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.
- Perfis
- Um perfil é simplesmente o mapeamento de uma tarefa para um conjunto de políticas de intenção de acesso configurado nos beans de entidade. Quando a chamada de um bean (por um método finder, um CME getter ou uma consulta dinâmica) requer que dados sejam recuperados do sistema de backend, a tarefa atual associada ao pedido é utilizada para determinar o requisito exato da transação. O mesmo bean carrega e comporta-se de forma diferente no contexto do mapeamento tarefa para perfil.
Cada perfil fornece ao desenvolvedor a oportunidade de reconfigurar a intenção de acesso do aplicativo. Se um pedido estiver operando na falta de uma tarefa, o ambiente do tempo de execução utiliza uma intenção de acesso no nível do método (se houver alguma) ou uma intenção de acesso padrão no nível do bean. Nota: A configuração do perfil do aplicativo são os dados de configuração do escopo do aplicativo. Se qualquer módulo EJB (Enterprise Javabean) contiver uma configuração de perfil do aplicativo, todos os outros módulos EJB serão implicitamente regulados pelo serviço de Traçado de Perfil do Aplicativo mesmo que eles não contenham 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.