2017-10-06 5 views
0

Dears,comment mettre en veille prolongée deuxième durée de vie du cache de niveau à une seule entité de déploiement sur wildfly (Infinispan)

Comment puis-je mettre en veille prolongée deuxième durée de vie de cache de niveau (délai d'attente) à une seule entité de déploiement sur wildfly (Infinispan)?

J'ai une entité qui est partagée par certains nœuds (qui ne se connaissent pas), tous liés dans une base de données centrale.

Je souhaite disposer d'un cache de second niveau pour éviter l'accès inutile à la base de données. Mais je veux aussi expirer ce cache toutes les 5 minutes pour m'assurer que nous avons une sorte de cohérence entre les nœuds. Donc, je veux le configurer via un cache de second niveau.

Merci beaucoup

Répondre

0

Infinispan est le choix de la mise en cache par défaut dans wildfly. Activez simplement le 2LC dans persistence.xml (hibernate.cache.use_second_level_cache=true) et annotez votre entité mise en cache avec javax.persistence.Cacheable. Vous pouvez configurer l'expiration à 5 minutes via hibernate.cache.infinispan.entity.expiration.lifespan=300, si vous souhaitez synchroniser les caches, vous pouvez regrouper les noeuds à l'aide de standalone-ha.xml.

+0

Mais comment puis-je définir cette entité à 5 minutes? Mais ne pas définir tous les autres? –

+0

Voir la documentation [ici] (https://docs.jboss.org/hibernate/orm/5.2/userguide/html_single/Hibernate_User_Guide.html#caching-provider-infinispan-config). Il est possible de donner des valeurs d'expiration aux entités individuelles. La chose la plus importante en dehors de la définition de l'entité FQN dans la propriété est de ne pas oublier de mettre le nom du fichier de déploiement et le nom de l'unité de persistance. –