quinta-feira, 3 de setembro de 2009

Seam Caching - Parte I

Uma aplicação Seam suporta o uso de cache em várias camadas. Neste primeiro artigo da série Seam Caching, irei tratar especificamene do cache de entidades em EJB 3.0. Nos próximos, falarei sobre o cache de resultados de consultas e por fim, sobre o cache de fragmentos de páginas. Todos eles trarão exemplos práticos e executáveis para que você possa baixar e testar em sua própria máquina.

Se estamos falando de uma aplicação Seam que trabalha com EJB 3.0, podemos fazer uso do cache de entidades. No caso de aplicações EJB 3.0 dentro do JBoss, o Hibernate é utilizado como implementação JPA e este possui suporte para um cache de segundo nível. A configuração utilizada para a implementação EJB 3.0 utiliza o JBoss Cache para implementar o mecanismo de cache. Este cache é ajustado no arquivo $JBOSS_HOME/server/all/deploy/ejb3-entity-cache-service.xml que contem uma série de configurações explicadas detalhadamente na documentação do JBoss Cache.

Com o cache habilitado, cada vez que é persistida uma entidade num banco de dados através do entity manager, a entidade será inserida no cache. Cada vez que a entidade for atualizada e suas mudanças forem persistidas através do entity manager, a entidade será atualizada no cache. E por fim, se você remover a entidade do banco, através do entity manager, a entidade será removida do cache.

O JBoss Cache permite que você especifique timeouts para as entidades no cache. Entidades não acessadas dentro de um certo período de tempo são removidas do cache para liberar memória. Além de tudo isto, o JBoss Cache suporta clustering. Se você está dentro de um cluster, e o cache é atualizado, mudanças em entradas de um nó serão replicadas para as entradas correspondentes nos outros nós do cluster.

Continue a leitura...

Nenhum comentário:

Postar um comentário