Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проверить работает ли ehcache 
V
    Опции темы
Старовъръ
Дата 26.12.2009, 20:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 1
Всего: 10



Подключил вот так ehcache:
Код
                <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</prop>
                <prop key="net.sf.ehcache.configurationResourceName">ehcache.xml</prop>
Содержимое этого конфига:
Код
<ehcache>
    <diskStore path="java.io.tmpdir/1" />

    <defaultCache maxElementsInMemory="500" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="240"
                  overflowToDisk="false" diskPersistent="false" diskExpiryThreadIntervalSeconds="120"
                  memoryStoreEvictionPolicy="LRU" />
</ehcache>
Попробовал сохранить в БД 1000 объектов, потом вытащить их два раза, что с ehcache, что без него - результат одинаков. Как все же проверить работает ли ehcache?
PM MAIL WWW   Вверх
goodday1941
Дата 26.12.2009, 20:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: нет
Всего: 9



продебажить

скорее всего не работает, я когда настроил его на одном проекте разница біла просто дико заметна


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
Старовъръ
Дата 26.12.2009, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 1
Всего: 10



Хм.. поставил breakpoints в классе net.sf.ehcache.hibernate.EhCacheProvider, там останавливается, однако скорость выборки от этого не увеличивается( Может я чего неверно сконфигурировал? Или неправильно тестирую? Я просто бросаю в БД 500 объектов, потом 1000 раз их выбираю..
PM MAIL WWW   Вверх
dobrolub
Дата 26.12.2009, 21:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada

Репутация: 4
Всего: 16



думаю тебе поможет logging. глянь как там включается более подробный логгинг, включи по полной и почитай мессаги кэша.
PM   Вверх
Vasay
Дата 26.12.2009, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Старовъръ

БД (кстати, она на том же компьютере?) тоже может в памяти закэшировать, вот и не дает ehcache никакого прироста в скорости выборки.


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
Старовъръ
Дата 26.12.2009, 21:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 1
Всего: 10



Цитата
думаю тебе поможет logging. глянь как там включается более подробный логгинг, включи по полной и почитай мессаги кэша.
Поставил ему DEBUG-уровень, молчит, зараза, как партизан.
Цитата
БД (кстати, она на том же компьютере?) тоже может в памяти закэшировать, вот и не дает ehcache никакого прироста в скорости выборки. 
Обнадеженный, что так оно и есть, попробовал соединиться с компом в сетке с такой же базой - результат остается неизменным.
Выложите свои конфигурации и скажите, может еще где-то нужно конфигурить, например, в hbm.xml файлах?
PM MAIL WWW   Вверх
Vasay
Дата 26.12.2009, 22:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2097
Регистрация: 8.3.2006

Репутация: 18
Всего: 73



Старовъръ

А что будет если сделать так:

Положить 500 элементов в БД. Запросить 500 элементов из программы, потом поменять один элемент в БД (не через свою программу), и снова запросить 500 элементов из своей программы? Получим первоначальные 500 элементов, или уже с измененным элементом?


--------------------
Придумать идеальную защиту от дурака невозможно, дураки, наудивление, изобретательны.
PM MAIL   Вверх
dobrolub
Дата 27.12.2009, 04:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 385
Регистрация: 18.12.2009
Где: Vancouver, Canada

Репутация: 4
Всего: 16



Цитата(Старовъръ @ 26.12.2009,  21:56)
Цитата
думаю тебе поможет logging. глянь как там включается более подробный логгинг, включи по полной и почитай мессаги кэша.
Поставил ему DEBUG-уровень, молчит, зараза, как партизан.

Ну если молчит, и быстрее не стало, то наверно и не подключил её хай-бер-нэйт.
PM   Вверх
gelo86
Дата 27.12.2009, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 388
Регистрация: 26.10.2007

Репутация: нет
Всего: нет



Просто указать provider_class и ehcache.xml недостаточно. Хибернату надо указать какие класы и коллекшоны надо кешить.
PM MAIL   Вверх
goodday1941
Дата 28.12.2009, 00:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 709
Регистрация: 16.7.2006
Где: Украина, Киев

Репутация: нет
Всего: 9



к сожелению я настраивал эхкеш под ждбсшный проект, так что мои конфиги будут явно не к месту, а косаемо хибернейта, я когда-то смотрел в этом направлении и помоему одного конфига (судя по всяческой инфе в интернете) недостаточно


--------------------
SCJP 6
PM MAIL ICQ Skype GTalk   Вверх
MisterCleric
Дата 28.12.2009, 14:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Привет всем.

Старовъръ, хорошо, а ты сказал своим энтити, что они кешируемые? Например аннотацией
Код

@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)


Просто естественно, что не достаточно сказать, что использовать кеш и настроить дефолтный риджин, надо же еще сказать, а что будет ложится в кеш.



--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Старовъръ
Дата 28.12.2009, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 1
Всего: 10



Подхватывается все-таки ehcache, т.к. в приложении была ошибка в одном месте когда я установил, что кеш работает только для чтения. Однако прироста в скорости нет. В самом приложении не сравнить, а в тестах скорость все та же. 
Уже добавил в hbm.xml 
Код
<cache usage="read-write" include="all" />

Ставлю всем запросам setCacheable(true). Конфиг ehcache.xml теперь выглядит так:
Код
    <diskStore path="java.io.tmpdir/1" />

    <defaultCache maxElementsInMemory="5000" eternal="false" timeToIdleSeconds="300" timeToLiveSeconds="240"
                  overflowToDisk="false" diskPersistent="false" diskExpiryThreadIntervalSeconds="120"
                  memoryStoreEvictionPolicy="LRU" />
    <cache name="org.hibernate.cache.UpdateTimestampsCache" maxElementsInMemory="10000" eternal="true"
           overflowToDisk="true" />
    <cache name="org.hibernate.cache.StandardQueryCache" maxElementsInMemory="5000" eternal="false"
           timeToLiveSeconds="120" overflowToDisk="true" />
    <cache name="FirstEntity" maxElementsInMemory="2000" eternal="false" timeToIdleSeconds="120"
           timeToLiveSeconds="120" overflowToDisk="true" />
    <cache name="SecondEntity" maxElementsInMemory="10000" eternal="false" timeToIdleSeconds="120"
           timeToLiveSeconds="120" overflowToDisk="true" />
    <cache name="ThirdEntity" maxElementsInMemory="10000" eternal="false"
           timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />
    <cache name="Entity.hisCollection" maxElementsInMemory="10000" eternal="false"
           timeToIdleSeconds="120" timeToLiveSeconds="120" overflowToDisk="true" />
Настройка Хиба:
Код
                <prop key="hibernate.cache.use_second_level_cache">true</prop>
                <prop key="hibernate.cache.use_query_cache">true</prop>
                <prop key="hibernate.cache.provider_class">net.sf.ehcache.hibernate.EhCacheProvider</prop>
                <prop key="net.sf.ehcache.configurationResourceName">ehcache.xml</prop>
А ему все пофик. Вот тут у дядьки была такая же проблема, так говорит, когда без спринга попробовал - кеш заработал.. Но это как-то странно)

Это сообщение отредактировал(а) Старовъръ - 28.12.2009, 15:11
PM MAIL WWW   Вверх
MisterCleric
Дата 28.12.2009, 15:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Ану смотри здесь:
Hibernate+Spring+EhCache


--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
Старовъръ
Дата 28.12.2009, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 1
Всего: 10



Не, там дядько нашел решение, однако сам не понял как и в чем оно заключалось...
PM MAIL WWW   Вверх
Старовъръ
Дата 28.12.2009, 20:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 491
Регистрация: 8.5.2008

Репутация: 1
Всего: 10



Разобрался. Я делал и занесение данных, и их извлечение в одной транзакции. Кеш не работает, видимо, с данными, которые не закомичены в БД.
Всем спасибо за помощь!

Это сообщение отредактировал(а) Старовъръ - 28.12.2009, 20:18
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0936 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.