2015-05-10 3 views
0

Я использую ehcache (не реплицированный или распределенный) в своем приложении, и, насколько я знаю, к нему можно получить доступ только с одной JVM, но все приложения в одной JVM (например, развернутые на сервере приложений) могут получить значения из кеша. Я прав?
Я хочу, чтобы только мое приложение могло получить кеш и его значения. Возможно ли это как-то? Я проверил файл конфигурации XML, но я не нашел никакой конфигурации для управления этим. Или мне нужно установить что-то, когда я получаю кеш из CacheManager?
Это то, как я получаю кэш в коде:ehcache - ограничение доступа

private static final String LOCAL_CACHE_NAME = "LOCAL_PROTNEUT_STORE"; 

private Cache getCache() { 
    // the name of the ehcache should be able to be configured in the general config XML 
    URL url = getClass().getResource("/protneut-local-ehcache.xml"); 
    CacheManager manager = CacheManager.create(url); 

    Cache cache = manager.getCache(LOCAL_CACHE_NAME); 
    return cache; 
} 

Файл конфигурации:

<ehcache> 
    <cache name="LOCAL_PROTNEUT_STORE" maxElementsInMemory="500" eternal="true" memoryStoreEvictionPolicy="LRU" /> 
</ehcache> 

Можно ли контролировать доступ на всех?

Спасибо за помощь!

С уважением,
V.

ответ

1

В общих приложениях не имеет доступа друг к другу, как они загружаются с Separe к классам (вы можете прочитать больше об этом here), так что вы не должны беспокоиться об этом.

Вы должны сделать дополнительные усилия, чтобы сделать простой менеджер кэша во всех в Карелию приложений (например, сделать его доступным через JNDI или положить его в общей Lib)

+0

Привет HRIS, спасибо оптоволоконного ответа! В соответствии с http://ehcache.org/documentation/2.8/integrations/tomcat банки ehcache должны быть помещены в общую библиотеку Tomcat. Это означает, что для ehcache будет один и тот же загрузчик классов? V. – Viktor

+0

Да libs forlder загружается одним загрузчиком классов, тогда загрузчики классов, которые загружают Webapps, используют его для поиска общих классов. Поэтому теоретически, если ehcache содержит реестр всех созданных кэшей, можно будет получить доступ к кешу, создаваемому одним приложением, в другом. –

+0

Если вы боитесь, что просто установите баннеры ehcache с приложением. А что касается утечек памяти ... просто не забудьте перезапустить tomcat на перераспределениях :) –

Смежные вопросы