Bonjour,
c une question bête peut être, mais il me semblait que le cache du premier niveau est associé à une session, et celui du second niveau est associé à la sessionFactory....Je me trompe?
En fait, je vous explique, j'essaye de faire marcher le second niveau, chose qui marche a priori chez moi, voici le contenu d'une region associé à une classe Customer:
Code:
SecondLevelCacheStatistics[hitCount=0,missCount=0,putCount=3097,elementCountInMemory=3097,elementCountOnDisk=0,sizeInMemory=4923969]
Quand je fais un appel à la même fonction ("GetCustomers()") au sein de la même session, il n'exécute effectivement pas toutes les requêtes sql ( associées à la recherche des relations en associations avec la table Customer), mais cherche le résultat dans le cache. jusque la tout est bon...
Sauf que j'ai l"'impression que ceci est du plutôt au cache du premier niveau, en effet en désactivant le cache, le comportement reste le même....
Du coup, j'ai fermé la session , tout en restant dans la même sessionFactory, que j'ai partagé.
En faisant appel à la même fonction "GetCustomers()", dans les statistiques, je voit bien que les données sont encore dans le cache après fermeture de la session:
Code:
Statistics[start time=1228834340015,sessions opened=2,sessions closed=1,transactions=0,successful transactions=0,optimistic lock failures=0,flushes=0,connections obtained=3,statements prepared=3750,statements closed=3750,second level cache puts=8130,second level cache hits=0,second level cache misses=3747,entities loaded=4408,entities updated=0,entities inserted=0,entities deleted=0,entities fetched=25,collections loaded=3722,collections updated=0,collections removed=0,collections recreated=0,collections fetched=3722,queries executed to database=3,query cache puts=0,query cache hits=0,query cache misses=0,max query time=27812]
Or, il exécute de nouveau toutes les requêtes pour récupérer les collections... il les récupère pas du cache, pourtant j'ai l'impression qu'ils y sont....il devrait pas normalement???
ou est le problème??? de l'aide!!!!
PS: Le nb de requêtes exécutées est de 3, car j'ai fait 3 appels à la même méthode "GetCustomers()" avant de fermer la session...le premier appel pour remplir le cache, les deux autres il ne faisait que lire du cache...
Merci...