É possível indicar que um determinado tipo de Enterprise JavaBeans (EJB) não deve sincronizar
seu estado para armazenamento persistente antes de cada chamada de findBy utilizando variáveis de
ambiente ou uma interface de marcador.
Sobre Esta Tarefa
Há duas opções disponíveis para indicar que um determinado tipo
de EJB não deve sincronizar seu estado para armazenamento persistente antes de
cada chamada de findBy:
- Configure uma variável de ambiente EJB dentro do descritor de implementação do bean.
- Fazer com que a classe de implementação do bean implemente uma interface de marcador.
Esta
segunda técnica é especialmente útil se você tiver várias implementações de beans onde
todas elas estendam uma única classe-raiz; neste caso, você poderá fazer com que a
classe-raiz implemente a interface de marcador, fazendo com que todos os beans que estendem essa classe também
herdem o comportamento.
Procedimento
- Para usar a técnica de variável de ambiente EJB, edite o descritor de implementação
EJB usando qualquer ferramenta de implementação Java™ Platform, Enterprise Edition (Java EE) padrão. Para obter informações sobre suas opções de ferramenta,
consulte o tópico, Ferramentas de Montagem.
- Inicie a ferramenta.
- Selecione o descritor de implementação EJB do bean com o qual
deseja trabalhar.
- Crie uma variável de ambiente de EJB com o nome com/ibm/websphere/ejbcontainer/disableFlushBeforeFind.
- Defina o tipo dessa variável para java.lang.Boolean.
- Defina o valor como True para evitar a sincronização de pré-localização
ou False para permitir o comportamento padrão.
- Salve as alterações.
- Para utilizar uma interface do marcador, codifique a classe de implementação
do bean para implementar a interface com.ibm.websphere.ejbcontainer.disableFlushBeforeFind. A classe de implementação do bean não precisa implementar diretamente a interface; qualquer classe-pai pode implementar a interface. Consulte o pacote com.ibm.websphere.ejbcontainer na seção Referência >
Desenvolvedor > Documentação da API do Centro de Informações.
Assegurando integridade de dados para consultas executadas durante uma transação
Se você optar por desativar a sincronização de pré-localização automática para determinados tipos de beans, é muito importante que seu aplicativo utilize outros meios para assegurar que as consultas executadas durante a
transação não sejam executadas em dados que podem não ser mais válidos. É possível utilizar o método flushCache na classe com.ibm.websphere.ejbcontainer.EJBContextExtension
(uma extensão de javax.ejb.EJBContext) para executar uma sincronização manual
para o armazenamento persistente em horários definidos pelo aplicativo.
Para obter informações
adicionais sobre o EJBContextExtension e suas classes relacionadas
SessionContextExtension, EntityContextExtension eMessageDrivenContextExtension, consulte
o pacote com.ibm.websphere.ejbcontainer na seção
Referência > Desenvolvedor > Documentação da API
do Centro de Informações.