Элементы начинают переполняться на диск, когда у вас в хранилище памяти их более maxElementsInMemory . В следующем примере создается кэш, в котором хранится 1000 элементов в памяти и, если вам нужно хранить больше, до 10000 на диске:
<cache name="cacheName"
maxElementsInMemory="1000"
maxElementsOnDisk="10000"
overflowToDisk="true"
timeToIdleSeconds="..."
timeToLiveSeconds="...">
</cache>
Что касается второго вопроса, взгляните на параметр diskPersistent . Если установлено значение true, Ehcache будет хранить ваши данные на диске, когда вы остановите JVM. Следующий пример демонстрирует это:
<cache name="cacheName"
maxElementsInMemory="1000"
maxElementsOnDisk="10000"
overflowToDisk="true"
diskPersistent="true"
timeToIdleSeconds="..."
timeToLiveSeconds="...">
</cache>