grails の 2 次キャッシュの問題に直面しています。以下は、私がフォローしている構成です。
DataSource.groovy
hibernate {
cache.use_second_level_cache = true
cache.use_query_cache = true
cache.provider_class = 'org.hibernate.cache.EhCacheProvider'
}
FirmClient.groovy
static mapping = {
cache true
}
FirmClientController.groovy
def t1 = System.currentTimeMillis()
def firmClient = FirmClient?.findAll(query,[cache:true])
println "time take for Firm client list>>>>>> ${System.currentTimeMillis()-t1}"
conf/ehcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<ehcache>
<diskStore path="java.io.tmpdir" />
<defaultCache name="default" maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true"/>
<cache name="FirmClient" maxElementsInMemory="10000" eternal="false"
timeToIdleSeconds="300" timeToLiveSeconds="600" overflowToDisk="true"/>
</ehcache>
最初の問題は tmpdir にあります。FirmClient.data にはデータがありません。データを FirmClient.data にダンプする方法
2番目の問題は、ミリ秒単位の時間が最初にクエリにヒットしたとき、同じパラメーターで2番目にヒットしたときに徐々に減少していることです.しかし、クエリがキャッシュされている場合、期間はゼロとして表示されるはずです.
二次キャッシュの仕組みと上記の問題を解決する方法を教えてください。