powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
9 сообщений из 9, страница 1 из 1
Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
    #39327311
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем доброго времени суток


При чтении таблицы через хибернейт репоиторий происходит ошибка вот такого вида.


Код: java
1.
2.
HHH020008: Cache[de.kvwl.abrechnung.gostamm.transfer.model.Gnr] Key[de.kvwl.abrechnung.gostamm.transfer.model.Gnr#X500418P1] Lockable[org.hibernate.cache.ehcache.internal.strategy.AbstractReadWriteEhcacheAccessStrategy$Item@405603b6]
A soft-locked cache entry was expired by the underlying Ehcache. If this happens regularly you should consider increasing the cache timeouts and/or capacity limits




Вот сам запрос
Код: java
1.
Leistung findByQuartalAndGnr(int quartal, Gnr gnr);



Погуглил - согласно stackoverflow проблема в том что не был настроен ehcashe (испольую hibernate 5, БД Оракл 12)

становил ehcache, прописал его в конф файле мавен и конечнно же в настройках хибернейт

Вот hibernate.cfg.xml

Код: java
1.
2.
3.
<property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
  <property key="hibernate.cache.use_query_cache">true</property>
  



Вот сам echcache файл
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="ehcache.xsd"
    updateCheck="true"
    monitoring="autodetect"
    dynamicConfig="true">
    <diskStore path="java.io.tmpdir" />
    <defaultCache
     eternal="true"
      maxElementsInMemory="1000" 
     overflowToDisk="true"
     diskPersistent="false"
     timeToIdleSeconds="120"
     timeToLiveSeconds="120"
     diskExpiryThreadIntervalSeconds="120"
     memoryStoreEvictionPolicy="LRU" >
    </defaultCache>
    // собственно тут прописал для проблемной таблицы настройки
    <cache name="de.kvwl.abrechnung.gostamm.transfer.model.Leistung"
     eternal="false"
      maxElementsInMemory="1000" 
        timeToIdleSeconds="1800"
           timeToLiveSeconds="1800"
           overflowToDisk="false"
     memoryStoreEvictionPolicy="LFU" >
    </cache>
</ehcache>



Маппинг таблицы Lesitung очень большой - там 49 полей (вообще БД очень старая и очень кривая собственно цель проекта - подготовка ухда с данной базы но пока испоольщуется именно она а данный софт - конвертер - 1 из нескольких)

В чем данная проблема может быть?

Запрос должен возвращать только 1 запись. А вообще их в таблице примерно пол миллиона записей только в тестовой базе.
С ehcache раньше не работал и как то не предпологал нужность ее в данном проекте. Может ли быть данная ощибка следствеим структуры БД?
...
Рейтинг: 0 / 0
Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
    #39327344
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зубок александр,
Не верится в эту ошибку. Кто мешает уменьшить маппинг до пропадания ошибки? В тестовой демке?
Тестирование это работа программиста.
...
Рейтинг: 0 / 0
Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
    #39327349
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2. Экспорт и импорт через орм не делают.
...
Рейтинг: 0 / 0
Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
    #39327352
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зубок александрПри чтении таблицы через хибернейт репоиторий происходит ошибка вот такого вида.

Почему вы решили что это "ошибка"? В логе разве не написано что это WARNing?

зубок александрстановил ehcache, прописал его в конф файле мавен и конечнно же в настройках хибернейт

Странно вы как-то читаете. Проблема не в том что его нет, а в том как он настроен.

зубок александрВот сам echcache файл
Код: java
1.
2.
3.
      maxElementsInMemory="1000" 
     overflowToDisk="true"
     diskPersistent="false"



В памяти не более 1000 записией и диск не используется?

зубок александрВ чем данная проблема может быть?

Во-первых мы ещё не решили почему именно это "проблема".
Во-вторых фреймверк вам подсказывает что тут можно бы было сущность из кэша вытянуть. Но из-за лимита по памяти запись уже заэкспарилась. Соответственно что можно сделать? Увеличить лимиты по памяти для EhCache!

зубок александрМожет ли быть данная ощибка следствеим структуры БД?
Маловероятно.
...
Рейтинг: 0 / 0
Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
    #39327607
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

автор В логе разве не написано что это WARNing?
по логам она error
...
Рейтинг: 0 / 0
Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
    #39327612
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowicz,

ну и не только по логам. После данного "предупреждения" скрипт вылетает.
...
Рейтинг: 0 / 0
Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
    #39327616
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зубок александрBlazkowicz,

ну и не только по логам. После данного "предупреждения" скрипт вылетает.
stacktrace исключения можно посмотреть?
...
Рейтинг: 0 / 0
Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
    #39327825
зубок александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Blazkowiczзубок александрBlazkowicz,

ну и не только по логам. После данного "предупреждения" скрипт вылетает.
stacktrace исключения можно посмотреть?

Ну вот еще вылезло нечто из tstacktrace

авторHV000183: Unable to load 'javax.el.ExpressionFactory'. Check that you have the EL dependencies on the classpath, or use ParameterMessageInterpolator instead

Вот полный вариант ошибки.
Вероятно проблема маппинга буду копать

авторjavax.validation.ValidationException: HV000183: Unable to load 'javax.el.ExpressionFactory'. Check that you have the EL dependencies on the classpath, or use ParameterMessageInterpolator instead
at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.createValidator(ValidatorFactoryImpl.java:339)
at org.hibernate.validator.internal.engine.ValidatorContextImpl.getValidator(ValidatorContextImpl.java:122)
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.validate(BeanValidationEventListener.java:111)
at org.hibernate.cfg.beanvalidation.BeanValidationEventListener.onPreUpdate(BeanValidationEventListener.java:86)
at org.hibernate.action.internal.EntityUpdateAction.preUpdate(EntityUpdateAction.java:244)
at org.hibernate.action.internal.EntityUpdateAction.execute(EntityUpdateAction.java:118)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:560)
at org.hibernate.engine.spi.ActionQueue.executeActions(ActionQueue.java:434)
at org.hibernate.event.internal.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:337)
at org.hibernate.event.internal.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:50)
at org.hibernate.internal.SessionImpl.autoFlushIfRequired(SessionImpl.java:1251)
at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1319)
at org.hibernate.internal.QueryImpl.list(QueryImpl.java:87)
at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:606)
at org.hibernate.jpa.internal.QueryImpl.getSingleResult(QueryImpl.java:529)
at org.hibernate.jpa.criteria.compile.CriteriaQueryTypeQueryAdapter.getSingleResult(CriteriaQueryTypeQueryAdapter.java:54)
at org.springframework.data.jpa.repository.query.JpaQueryExecution$SingleEntityExecution.doExecute(JpaQueryExecution.java:206)
at org.springframework.data.jpa.repository.query.JpaQueryExecution.execute(JpaQueryExecution.java:78)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.doExecute(AbstractJpaQuery.java:102)
at org.springframework.data.jpa.repository.query.AbstractJpaQuery.execute(AbstractJpaQuery.java:92)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.doInvoke(RepositoryFactorySupport.java:482)
at org.springframework.data.repository.core.support.RepositoryFactorySupport$QueryExecutorMethodInterceptor.invoke(RepositoryFactorySupport.java:460)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.projection.DefaultMethodInvokingMethodInterceptor.invoke(DefaultMethodInvokingMethodInterceptor.java:61)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:280)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:136)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.data.jpa.repository.support.CrudMethodMetadataPostProcessor$CrudMethodMetadataPopulatingMethodInterceptor.invoke(CrudMethodMetadataPostProcessor.java:133)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy88.findByQuartalAndGnr(Unknown Source)
at de.kvwl.abrechnung.gostamm.transfer.ReadLestungAttrs.getLeistungsOfGnr(ReadLestungAttrs.java:54)
at de.kvwl.abrechnung.gostamm.transfer.ReadXML.parseMainOfGnr(ReadXML.java:335)
at de.kvwl.abrechnung.gostamm.transfer.ReadXML.parseGnrList(ReadXML.java:398)
at de.kvwl.abrechnung.gostamm.transfer.ReadXML.parseAll(ReadXML.java:545)
at de.kvwl.abrechnung.gostamm.transfer.StartGoStammRuecktransfer.run(StartGoStammRuecktransfer.java:42)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:333)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:190)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation(TransactionInterceptor.java:99)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:280)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:96)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:213)
at com.sun.proxy.$Proxy93.run(Unknown Source)
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:798)
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:782)
at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:769)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:314)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1185)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1174)
at de.kvwl.abrechnung.gostamm.transfer.RuecktransferApplication.main(RuecktransferApplication.java:10)
...
Рейтинг: 0 / 0
Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
    #39327835
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зубок александр,

Это другое исключение. По первому стэка не будет?
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Ошибка при чтении большой таблицы данных связанная с настройкой ehcahce
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]