Pré-carregando o ObjectCache WSJPA Automaticamente
A extensão WebSphere Java™ Persistence API (WSJPA) para OpenJPA fornece um ObjectCache somente leitura que pode melhorar o desempenho em determinados casos de uso. Por padrão, os dados no cache são carregados em um método lento, o que significa que entidades individuais são carregadas na memória quando elas são solicitadas por um aplicativo. Se desejar carregar todas as entidades desde o início, entretanto, será possível configurar o servidor de aplicativos para pré-carregar todas as entidades do banco de dados que são configuradas no ObjectCache. Pré-carregar o ObjectCache permitirá que você armazene em cache entidades que, de outra forma, seriam restringidas se você carregasse o ObjectCache por meio do método lento. Essa configuração somente é suportada ao usar WSJPA no nível de especificação JPA 2.0.
Sobre Esta Tarefa

- Para entidades que são configuradas para estarem no ObjectCache, também você deve configurar todos os relacionamentos rápidos no ObjectCache; quaisquer relacionamentos lentos não estarão disponíveis.
- Enquanto o servidor de aplicativos estiver pré-carregando o ObjectCache, as entidades serão buscadas a partir do banco de dados. O servidor de aplicativos não incluirá nenhuma entidade no ObjectCache que seja carregada por outros métodos.
- O carregamento automático do cache pode demorar um tempo muito longo se seu gráfico do objeto é complexo.
- Seja cuidadoso quando ativar este recurso, porque ele poderá consumir toda a memória disponível. Para esta função funcionar, o ambiente de JPA precisa ter o conjunto completo de dados na memória.
ObjectCache carregado com sucesso com [...] Entidades em [...] segundos.
Procedimento
Exemplo
- A propriedade a seguir especifica que o ObjectCache será
carregado automaticamente quando o servidor de aplicativos criar o primeiro
EntityManager:
<property name=" wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar, MaxSize=auto)”/>
- A propriedade a seguir especifica que o ObjectCache será
carregado automaticamente quando o servidor de aplicativos criar o primeiro
EntityManager e o ObjectCache será recarregado a cada 20 minutos:
<property name=" wsjpa.ObjectCache" value=”true(Types=com.ibm.wsjpa.Foo; com.ibm.wsjpa.Bar, MaxSize=auto, EvictionSchedule=+20)”/>