I am trying to get statistics like size in memory and element count on disk for ehcache 3 implementation of jcache framework. why does this not support these extended statistics? i need stats on how much heap memory the cache is taking up, is there any other way to do this?
Most likely this has to be integrated into hibernate-jcache
module. You need to create a Jira issue and add a reference to this StackOverflow answer:
As a followup… to determine how much size the cache is on memory while testing, what i did was to convert the cache storage to disk only, then I navigated to the directory storing the cache and could see the size of the folder on hard drive, so I assume this is the same size that would have been taken up if the cache was stored in memory. Make sure to use setting hibernate.cache.use_structured_entries
so you can see breakdown of different cached objects.
since I couldn’t find many examples of how to use disk storage for jcache/ehcache 3 xml file, which I believe is required for use with hibernate, here is an example for others below. The “largeObjectDiskBackup” cache uses a mixed tiering approach, you can remove the heap setting to store on disk only for the testing I described in first paragraph:
<config
xmlns="http://www.ehcache.org/v3"
xmlns:jcache="http://www.ehcache.org/v3/jsr107">
<service>
<jcache:defaults default-template="myDefaults"/>
</service>
<!-- Sets the path to the directory where cache files are created. -->
<persistence directory="java.io.tmpdir"/>
<cache-template name="myDefaults">
<expiry>
<tti>3600</tti>
</expiry>
<heap>10000</heap>
</cache-template>
<cache-template name="tinyTemplate">
<expiry>
<tti>600</tti>
</expiry>
<heap>100</heap>
</cache-template>
<cache-template name="largeObjectDiskBackup">
<expiry>
<tti>600</tti>
</expiry>
<resources>
<disk unit="MB">100</disk>
<heap>40</heap>
</resources>
</cache-template>
<cache alias="uiowa.hawkirb.biz.projects.ProjectStatus" uses-template="tinyTemplate"/>
<cache alias="uiowa.hawkirb.biz.forms.proj.ProjectForm" uses-template="largeObjectDiskBackup"/>
</config>