Sugestões de Leitura Avançada

Esquemas de leitura avançada permitem que aplicativos maximizem o número de roundtrips de banco de dados recuperando um conjunto de trabalhos de benas de persistência gerenciada por contêiner (CMP) para a transação em uma consulta. Leitura avançada envolve a ativação dos beans CMP solicitados e armazenamento em cache dos dados para seus beans relacionados, o que garante que os dados estejam presentes para os beans que um aplicativo mais provavelmente precisará em seguida. Uma dica de leitura avançada é uma representação dos beans relacionados para leitura. A sugestão está associada ao método findByPrimaryKey para o tipo de bean solicitado, que deve ser um bean de entidade CMP compatível com EJB 2.x.

Uma dica de leitura avançada toma a forma de uma sequência de caracteres. Você não tem que fornecer a sequência; o asssitente a gera com base nos relacionamentos gerenciados por contêiner (CMRs) que estão definidos para o bean. O exemplo fornecido nesta seção é apenas para informações complementares. Suponha um tipo de bean CMP A tenha um método localizador que retorna instâncias de bean A. Uma dica de leitura avançada para este método é especificado usando a notação a seguir: RelB.RelC; RelD

Interprete a notação precedente da seguinte maneira:
  • O tipo de bean A tem um CMR com os tipos de beans B e D.
  • O tipo de bean B tem um CMR com o tipo de bean C.

Para cada bean do tipo A que é recuperado do banco de dados, seus beans B e D diretamente relacionados e seus beans C indiretamente relacionados também são recuperados. O pedido das colunas de dados do bean recuperados em cada linha do conjunto de resultados é o mesmo que o pedido na dica de leitura avançada: um bean A (ou nulo), um bean C (ou nulo), um bean D (ou nulo). Para sugestões nas quais o mesmo relacionamento é mencionado mais de uma vez, por exemplo, RelB.RelC;RelB.RelE, as colunas de dados para um bean ocorrem somente uma vez no conjunto de resultados, na primeira posição que o bean ocupa na sugestão.

Os tokens mostrados na notação, como RelB, devem ser nomes de campo do CMR para os relacionamentos, conforme definido no descritor de implementação para o bean. Em relacionamentos indiretos como RelB.RelC, RelC é um nome do campo do CMR que é definido no descritor de implementação para o bean tipo B.

Uma dica de leitura avançada única não pode se referir ao mesmo tipo de bean em mais de um relacionamento. Por exemplo, se um bean Departamento tiver um relacionamento funcionários com o bean Funcionário e também tiver um relacionamento gerente com o bena Funcionário, a dica de leitura avançada não pode especificar ambos funcionários e gerente.

Para obter informações adicionais sobre como configurar sugestões de leitura antecipada, consulte a documentação para o produto Rational Application Developer.

Comportamentos de Tempo de Execução de Sugestões de Leitura Avançada

Ao desenvolver suas sugestões de leitura avançada, considere as dicas e limitações a seguir:
  • sugestões de leitura avançada em caminhos longos ou complexos podem resultar em uma consulta que é muito complexa para ser útil. Sugestões de leitura avançada em mapeamentos de herança raiz ou de folha precisam de cuidade especial. Incluir o número de tabelas que comprometem potencialmente uma leitura avançada pré-carregam a calibração de complexidade de operações de junção que são necessárias. Considere se a instrução resultante constitui uma consulta razoável em seu banco de dados de destino.
  • sugestões de leitura avançada não funcionam nos casos a seguir:
    • Pré-carregar caminhos entre relacionamentos M:N
    • Pré-carregar caminhos entre relacionamentos recursivos de enterprise beans ou relacionamentos recursivos fk
    • Quando uma sugestão de leitura antecipada aplica-se a uma instrução SELECT FOR UPDATE que requer uma junção de tabela em um banco de dados que não suporta a combinação dessas duas operações.

      Em geral, o gerenciador de persistência emite uma instrução SELECT FOR UPDATE para um bean apenas se o bean tiver uma intenção de acesso que aplique políticas de bloqueio rígido. As políticas de bloqueio rígido requerem instruções SELECT FOR UPDATE para consultas de seleção de banco de dados. Se o design da tabela de banco de dados precisar de uma operação de junção para atender a instrução, muitos bancos de dados emitirão exceções, pois esses bancos de dados não suportam junções de tabela com as instruções SELECT FOR UPDATE. Nesses casos, o WebSphere Application Server não implementa uma sugestão de leitura antecipada. Se o banco de dados não fornecer este suporte, o Application Server implementa as sugestões de leitura avançada que são configuradas.

      [AIX Solaris HP-UX Linux Windows][z/OS]O DB2 Universal Database V8.2 suporta instruções SELECT FOR UPDATE com junções de tabela.


Í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=cejb_read
Nome do arquivo: cejb_read.html