[EHCache] Cache Hits loggen

Status
Nicht offen für weitere Antworten.

byte

Top Contributor
Hi,

ich benutze Hibernate mit EHCache als 2nd Level Cache. Ich würde nun gerne in meinen DAOs loggen, ob der Zugriff über die DB passiert ist oder über den Cache.

EHCache bietet ja die Möglichkeit, über einen
Code:
CacheEventListener
auf Ereignisse zu horchen. Komischerweise gibts da aber nur Benachrichtigungen bei einem PUT aber nicht bei einem GET.

Man kann natürlich auch den Log Level von
Code:
org.hibernate.cache
anpassen, aber dann wird man mit Log Messages zugemüllt und die Anwendung wird bei vielen Cache Hits stark ausgebremst.

Weiss jemand noch ne Möglichkeit?

Grüße byto
 

Noctarius

Top Contributor
Hab mir grad mal das Javadoc angesehen und es scheint kein Event für Get zu geben. Als Alternative könntest du natürlich einen Wrapper um EHCache bauen und das entsprechende Event selber liefern wenn jemand einen Get ausführt.
 

byte

Top Contributor
Mir ist grad eine einfachere Lösung eingefallen. Ich baue mir einen Around Advice um meine DAOs und benutze die Statistik der Session-Factory, um die Anzahl an Cache Hits / Misses zu bestimmen. Dann kann ich einfach jeweils den Ratio mitloggen.
 

Noctarius

Top Contributor
Verdammt, da wollt ich einmal die AspectJ's nicht anmerken, weil die nahezu keiner benutzt und jetzt kommst du damit an *böse mit dem Finger wedelt* *gg*

War nämlich auch meine erste, spontane Idee.
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen

Neue Themen


Oben