Configurando o ObjectCache do WSJPA para Melhorar o Desempenho

A extensão WebSphere Java™ Persistence API (WSJPA) para OpenJPA fornece um cache de objeto somente leitura que pode melhorar o desempenho em alguns casos de uso. Essa configuração é suportada somente ao usar WSJPA no nível de especificação JPA 2.0.

Sobre Esta Tarefa

Implementar um objeto ObjectCache do WSJPA pode melhorar o desempenho de um aplicativo que possui um conjunto de dados usados em um método somente leitura e estático, como acessar campos persistentes básicos e persistir em relacionamentos unidirecionais com um tipo somente leitura. O ObjectCache do WSJPA é um cache não distribuído de entidades somente leitura que opera no nível do objeto EntityManagerFactory. Estas instâncias em cache são compartilhadas por todos os objetos EntityManager na Java virtual machine (JVM), mas as instâncias não são gerenciadas por nenhum. Quando o recurso é ativado, o objeto ObjectCache é examinado antes que o aplicativo acesse o objeto OpenJPA DataCache e o banco de dados, e os objetos persistentes são carregados do banco de dados e armazenados em cache do objeto OpenJPA. Além disso, a implementação ObjectCache pode ser usada com recursos OpenJPA DataCache e QueryCache para desempenho cada vez maior.

Atenção para as seguintes condições e limitações:
  • Inclua tipos que são estritamente somente leitura do ponto de vista do aplicativo
    • Passando um tipo somente leitura nos resultados das operações a seguir em uma mensagem de erro UnsupportedOperationException:
      • Passando uma entidade somente leitura para EntityManager.merge(…).
      • Passando uma entidade somente leitura para EntityManager.persist(…).
      • Passando uma entidade somente leitura para EntityManager.remove(…).
    • Chamando um método setter em um tipo somente leitura que foi retornado pelos resultados do tempo de execução de JPA do WebSphere em uma mensagem de erro UnsupportedOperationException.
  • Tipos que estão incluídos no ObjectCache não devem ser elegíveis para armazenamento em cache no OpenJPA DataCache. Não intercepte tipos que são armazenados em cache por OpenJPA L2 (openjpa.DataCache); o ObjectCache não deve ser confundido com a cache de segundo nível definido pela especificação JPA 2.0. Se os tipos forem intersectados, ocorrerá uma exceção quando o objeto EntityManager for criado.
  • Inclua apenas campos básicos ou poderá ocorrer uma exceção quando o objeto EntityManager for criado.
  • Passar uma entidade somente leitura para EntityManager.contains(…) sempre retorna false, mesmo se ela acabou de retornar de uma operação localizar/consultar.
É possível ativar a cache do objeto para um único ambiente JVM, especifique os tipos que estão incluídos nessa cache, defina seu tamanho máximo de elemento e especifique valores de tempo limite.
Configurações suportadas Configurações suportadas: O nome da propriedade preferencial é wsjpa.ObjectCache, mas openjpa.ObjectCache também é uma configuração válida.sptcfg

Procedimento

O que Fazer Depois

Para ativar o carregamento automático do ObjectCache inteiro quando o primeiro objeto EntityManager for criado, siga as etapas no tópico Pré-carregando o ObjectCache WSJPA Automaticamente. Além disso, é possível ler mais sobre armazenamento em cache no Guia do Usuário OpenJPA para obter informações sobre todas as extensões de armazenamento em cache.

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



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