Какая модель кэширования / фреймворк с Websphere Spring Hibernate Oracle?


Мы рассматриваем возможность реализации структуры кэширования для нашего приложения, чтобы помочь улучшить общую производительность нашего сайта.

Мы работаем на Websphere 6.1, Spring, Hibernate и Oracle. В настоящее время основное внимание уделяется статическим данным или данным, которые меняются очень мало в течение дня, но используются много.

Так что любая информация будет отличной. Я начал свой поиск в google и чтение, но хотел получить представление о том, что сработало для членов сообщества. Один из то, что нас интересует, - это возможность заставить систему аннулировать кэш, когда происходит изменение в подчеркивающих данных.

Спасибо

Обновление:

Я наткнулся на статью на веб-сайте IBM, где говорится, что кластерно-зависимые кэши Hibernate в сочетании с WebSphere Application Server еще не определены; следовательно, is еще не определено, поддерживается ли их использование.

Мысли об этом? Мы бежим в сгруппированном виде окружающая среда.

5 2

5 ответов:

Ну, система кэша hibernate делает именно это, я использовал ehCache эффективно и легко с Hibernate (и системой кэша второго уровня).

Lucene тоже может быть вариантом в зависимости от ситуации. Hibernate Search или Compass могут помочь в этом (хотя это может занять некоторую серьезную работу).

Репликация с использованиемтерракоты также может быть вариантом, хотя я никогда этого не делал.

В Hibernate встроено кэширование первого и второго уровней. Вы можете настроить его на использование EhCache, OSCache, SwarmCache или C3P0 - на ваш выбор.

Вы также можете использовать кэш по умолчанию WebSphere, то есть DynaCache, для реализации кэша второго уровня. Это позволит вам администрировать, контролировать и настраивать кэш, используя инфраструктуру кэширования WebSphere

Я использовал ehCache и OSCache и обнаружил, что OSCache проще настроить и использовать.

Одна из вещей, которыми мы являемся интересует это способность иметь система очистить кэш, когда изменение действительно происходит в подчеркивании данные.

Из того, что я вижу, Hibernate на самом деле не делает этого-из документов Hibernate :

Будьте осторожны. Тайники никогда не осознают изменения, внесенные в постоянное хранилище по другому применению (хотя они может быть настроен на регулярное истечение срока действия кэшированный данные).
Очевидно, что это означает, что кэш не имеет ESP и не может сказать, вызывало ли приложение, не входящее в кластер, прямой DML в базе данных - но я предполагаю, что вы хотите предоставить службе устаревших приложений возможность подключаться и аннулировать кэш, когда они обновляют эти данные. И, насколько мне известно, нет никаких предположений о том, как это можно сделать.