/ / problème pour déterminer si le cache de deuxième niveau fonctionne en veille prolongée - Java, veille prolongée, ehcache, cache de deuxième niveau

problème pour déterminer si le cache de second niveau fonctionne en veille prolongée - Java, veille prolongée, ehcache, cache de second niveau

J'essaie d'utiliser ehcache dans mon projet .. j'ai spécifié les propriétés suivantes dans le fichier de configuration hibernate -

config.setProperty ("hibernate.cache.classe_fournisseur "," org.hibernate.cache.EhCacheProvider "); config.setProperty ("hibernate.cache.provider_configuration_file_resource_path", "ehcache.xml"); config.setProperty ("hibernate.cache.use_second_level_cache", "true"); config.setProperty ("hibernate.cache.use_query_cache", "true");

Maintenant, je ne sais toujours pas si les résultats proviennent de DB ou du cache.

J'ai regardé autour de moi et j'ai trouvé - Hibernate second level cache - résultat d'impression où la personne suggère les API HitCount / Misscount

Cependant, lorsque j'ai essayé de l'utiliser, le nombre d'abonnés et le nombre d'abonnés manquants sont toujours renvoyés 0 ... voici mon code

String rName = "org.hibernate.cache.UpdateTimestampsCache "; Statistiques stat = HibernateHelper.getInstance (). GetFactory (). GetStatistics (); long oldMissCount = stat.getSecondLevelCacheStatistics (rName) .getMissCount (); long oldHitCount = stat.getSecondLevelCacheStatistics (rName) .getHitCount (); UserDAO user = new UserDAO (); user.read (new Long (1)); longue newMissCount = stat.getSecondLevelCacheStatistics (rName) .getMissCount (); long newHitCount = stat.getSecondLevelCacheStatistics (rName) .getHitCount ();

if (oldHitCount + 1 == newHitCount && oldMissCount + 1 == newMissCount) { System.out.println ("provenait de DB"); } else if (oldHitCount + 1 == newHitCount && oldMissCount == newMissCount) {
System.out.println ("provenait de cache"); }

S'il vous plaît laissez-moi savoir si je l'utilise mal .. et quel devrait être le rName (Nom de la région) dans ce cas ..

Existe-t-il un autre moyen de déterminer si le cache de second niveau fonctionne?

Merci

Réponses:

2 pour la réponse № 1

Vous devez activer la collecte de statistiques:

config.setProperty("hibernate.generate_statistics", "true");