|
Eclipselink вопрос
|
|||
---|---|---|---|
#18+
Всем привет. Есть приложение в котором один из потоков постоянно (раз в 10-20 сек) обращается к БД (постгрес), выполняет простой запрос и возвращает сущность (у которой есть булево поле). При определенных условиях программа меняет булево поле с false на true или обратно (все это видно в логах). Вопрос: если во время работы программы зайти через пгадмин и руками сменить значение поля (зафиксировать изменение) то поток в программе так и будет выводить старое значение. JDBC напрямую еще не пробовал. Что еще посмотреть, каких-то настроек кеша нет. Библиотека EclipseLink Код привожу для примера Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 14:52 |
|
Eclipselink вопрос
|
|||
---|---|---|---|
#18+
с EclipseLink дела не имел. Не оно? http://www.eclipse.org/eclipselink/documentation/2.4/concepts/cache001.htm ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 14:54 |
|
Eclipselink вопрос
|
|||
---|---|---|---|
#18+
olegeosПри определенных условиях программа меняет булево поле с false на trueну дак твой код меняет поле. Вопрос в чем? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 15:45 |
|
Eclipselink вопрос
|
|||
---|---|---|---|
#18+
olegeosЧто еще посмотреть, каких-то настроек кеша нет. - попробуйте LockModeType.PESSIMISTIC_READ, должны начать ловить эксепшен если кто то грязными руками полез в базу ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 16:48 |
|
Eclipselink вопрос
|
|||
---|---|---|---|
#18+
Может не совсем понятно выразился, постоянно из программы делаю запрос через контроллер (к примеру метод find) на выборку конкретной строки и смотрю одно из значений поля(булево). При этом если программа через этот же контроллер меняет значение ( метод edit) то все нормально, оно изменяется. А если руками через стороннюю программу (пгАдмин) вношу это (при запущенной программе) изменение то, пока поток не перезапуститься он возвращает старое значение. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 17:14 |
|
Eclipselink вопрос
|
|||
---|---|---|---|
#18+
olegeos, Пробовал при каждом вызове запроса пересоздавать Энтити менеджер, какое-то время работает потом опять нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 17:16 |
|
Eclipselink вопрос
|
|||
---|---|---|---|
#18+
Leonid Kudryavtsevс EclipseLink дела не имел. Не оно? http://www.eclipse.org/eclipselink/documentation/2.4/concepts/cache001.htm Попробую этот вариант. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 17:19 |
|
Eclipselink вопрос
|
|||
---|---|---|---|
#18+
olegeosесли руками через стороннюю программу (пгАдмин) вношу это (при запущенной программе) изменение то - если Вы считаете что это нормально (паралельный доступ к данным из стороннего приложения), то используйте метод refresh, для принудительной синхронизации данных с БД (недостаток - просадите производительность). Либо можно отключить кэширование - см. ниже - если паралельный доступ к данным мимо EntityManger-а это ненормальное поведение и цель защитить приложение от таких ситуаций, то воспользуйтесь LockModeType.PESSIMISTIC_READ (его можно вкрячить и в find, и в refresh, и в Query). Будете получать эксепшн при таких ситуациях - отключить кэширование вообще или для конкретной сущности можно так ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 17:41 |
|
Eclipselink вопрос
|
|||
---|---|---|---|
#18+
olegeos, Может баг? Проходило тут что это хуже пров чем хибер. В хибере кэш первый сброс при закрытии сессии. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2018, 18:11 |
|
|
start [/forum/search_topic.php?author=Nikanette&author_mode=last_topics&do_search=1]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
others: | 722ms |
total: | 879ms |
0 / 0 |