2012-04-11 14 views
1

Ich erhalte Eh-Cache-Logging-Ausgabe, wenn es mit Hibernate 2nd Level Cache verwendet - ich verstehe nicht die Ausgabe und was es bedeuten könnte. Es wird viel auf die Protokolle gedruckt.Ehcache + Hibernate Log Output

DEBUG [net.sf.ehcache.store.disk.Segment] put added 0 on heap 
DEBUG [net.sf.ehcache.store.disk.Segment] put updated, deleted 0 on heap 

Kann jemand etwas Licht auf das werfen, was dies bedeuten könnte? My Second-Level-Cache erscheint nach arbeiten, auf einen Druck von der Statistik ...

INFO [com.atlaschase.falcon.commands.domain.AircraftCommandResolutionService] [ name = aircraftCache cacheHits = 824 onDiskHits = 0 offHeapHits = 0 inMemoryHits = 824 misses = 182 onDiskMisses = 182 offHeapMisses = 0 inMemoryMisses = 182 size = 91 averageGetTime = 1.0745527 evictionCount = 0 ] 

Jede Hilfe willkommen ..

Simon würde

+0

Oh - kann jemand bestätigen auch, dass die 'averageGetTime' in Millisekunden und nicht Sekunden? – totalcruise

Antwort

2

Diese Ausgabe wird erzeugt durch DiskStore, IIRC standardmäßig in EhCache aktiviert. Grundsätzlich übergibt EhCache zwischengespeicherte Daten vom Speicher auf die Festplatte. Wenn Sie diese Funktion deaktivieren möchten, setzen Sie overflowToDisk Eigenschaft flase:

<cache name="..." overflowToDisk="false" 

Oh - kann jemand bestätigen auch, dass die ‚averageGetTime‘ in Millisekunden und nicht Sekunden?

Bestätigt, Millisekunden. Obwohl die JavaDoc of Statistics.getAverageGetTime() ist leicht verwirrend:

[...] Da ehcache Unterstützung JDK1.4.2, jedes Mal bekommen verwendet System.currentTimeMilis, anstatt Nanosekunden. Die Genauigkeit ist somit begrenzt.

fand ich den folgenden Code in LiveCacheStatisticsImpl:

public float getAverageGetTimeMillis() { 
    //... 
    return (float) totalGetTimeTakenMillis.get()/hitCount; 
}