Я сконфигурировал EHCache с по умолчаниюCache (для элементов), стандартныйQueryCache (для запросов) и UpdateTimestampsCache (для чего я считаю, что отслеживать обновления баз... но я действительно не понимаю, что именно это делает).
Я установил maxElementsInMemory для каждого из этих кешей, но то, что я не получаю, это то, что этот номер контролирует для StandardQueryCache и для UpdateTimestampsCache. Я получаю, что количество объектов, которые могут кэшироваться в кеше по умолчанию, не должно превышать 10000, но кеш запросов не кэширует элементы. Он кэширует первичные ключи (насколько я понимаю).
Значит ли это, что maxElementsInMemory для StandardQueryCache контролирует количество "строк" из результатов или управляет количеством пар первичных ключей для элементов, которые могут иметь?
Как насчет UpdateTimestampsCache? Он отслеживает последний раз, когда объект был обновлен, последний раз, когда таблица была обновлена ... или что-то еще? Какое число я должен использовать для maxElementsInMemory для этого?
Спасибо!
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="ehcache.xsd" updateCheck="true" monitoring="autodetect" dynamicConfig="true">
<defaultCache
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600">
</defaultCache>
<cache
name="org.hibernate.cache.internal.StandardQueryCache"
maxElementsInMemory="10000"
eternal="false"
timeToIdleSeconds="3600"
timeToLiveSeconds="3600">
</cache>
<cache
name="org.hibernate.cache.spi.UpdateTimestampsCache"
maxElementsInMemory="10000"
eternal="true">
</cache>
</ehcache>