Java на habrahabr
JAVA / Hibernate Cache. Практика
Итак, в продолжение предыдущей статьи я попробую на реальных ситуациях рассказать о проблемах, которые возникали у меня при работе в реальных проектах.
Миграционные скрипты
Пожалуй, одной из наиболее частых проблем при работе с кешем в моем приложении является необходимость накатывать миграционные скрипты на работающий сервер. Ведь если эти скрипты запускаются не через фабрику сессий работающего сервера, то кеш этой фабрики никак не узнает об изменениях, которые делаются в базу. Следовательно, получаем проблему несовместимости данных. Для решения этой проблемы есть несколько путей:
public String dumpKeys() {
String regions[] = CacheManager.getInstance().getCacheNames();
StringBuilder allkeys = new StringBuilder();
String newLine = System.getProperty("line.separator");
for (String region : regions) {
Ehcache cache = CacheManager.getInstance().getEhcache(region);
allkeys.append(toSomeReadableString(cache.getKeys()));
allkeys.append(newLine);
}
return allkeys.toString();
}
Естественно что этот код должен выполняться в том же процессе что и хибернейт, статистику которого Вы хотите отследить. Подробней можно прочитать тут. Того же можно добиться используя фабрику сессий.
Теги:
Java
hibernate cache
problems