Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
IXaNI Участник со стажем
Вступление в Клуб: 27.08.2012
|
Ср Фев 14, 2024 11:57  Зависание ЭФ под 3L |
|
Полезность: Нет оценки
|
Коллеги, день добрый!
Кто работает с 3L, не сталкивались с проблемой зависания ЭФ при длительном выполнении операции? Может кто знает, как победить?
Суть вот в чем, при запуске операции, которые долго работают (по текущим наблюдениям от 40 минут) по завершении работы экранная форма операции не закрывается, продолжает висеть. При этом судя по отладке операция выполняется до конца. Даже изменения все коммитятся и под другими сессиями видны...
Еще одна странность - проблема наблюдается не на всех операциях. Т.е. одни операции работают без проблем могут хоть несколько часов провисеть, другие начинают зависать. И связь пока выявить не удалось. |
|
 |
pabrz Участник со стажем
Вступление в Клуб: 27.09.2022
|
Пт Фев 16, 2024 07:29   |
|
Полезность: Нет оценки
|
Наблюдал нечто похожее с двумя вариантами финала: либо просто крайне долгая работа с непонятными пока причинами, которые могут быть связаны с другими параллельно выполняющимися процессами на сервере, либо, что куда грустнее: полная остановка работы сессии при наличии "как бы работающей" операции и повисшей форме.
Пока особо вариантов решения не искали по принципу: если что-то работает дольше чем положено - останови и запусти заново. А вот коммит изменений до завершения операции - такого пока не видел - попахивает неважной архитектурой, когда нет шанса сделать rollback при ошибочных действиях операции...
Попробую понаблюдать за закономерностями. Т.е. это даже не сказать что 3L проблема. Это в принципе есть такая ситуация в системе. |
|
 |
IXaNI Участник со стажем
Вступление в Клуб: 27.08.2012
|
Пт Фев 16, 2024 17:06   |
|
Полезность: Нет оценки
|
Ну вот у нас это только под 3L наблюдается. Т.е. те же операции под 2L работают корректно. |
|
 |
VELNIN Участник
Вступление в Клуб: 14.07.2009
|
Ср Май 08, 2024 13:14   |
|
Полезность: Нет оценки
|
Привет. Удалось понять причины зависания формы на 3L? |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Вт Май 14, 2024 05:47   |
|
Полезность: Нет оценки
|
pabrz пишет: | Наблюдал нечто похожее с двумя вариантами финала: либо просто крайне долгая работа с непонятными пока причинами, которые могут быть связаны с другими параллельно выполняющимися процессами на сервере, либо, что куда грустнее: полная остановка работы сессии при наличии "как бы работающей" операции и повисшей форме.
Пока особо вариантов решения не искали по принципу: если что-то работает дольше чем положено - останови и запусти заново. А вот коммит изменений до завершения операции - такого пока не видел - попахивает неважной архитектурой, когда нет шанса сделать rollback при ошибочных действиях операции...
Попробую понаблюдать за закономерностями. Т.е. это даже не сказать что 3L проблема. Это в принципе есть такая ситуация в системе. |
Иногда то, что вы считаете неважной архитектурой является как раз признаком хорошо продуманной архитектуры.
В частности, длительная операция "расчёт отчёта" ОБЯЗАНА, как по мне, коммитить каждый этап расчёта из лога.
Потому что расчёт отчёта - это крайне долго и ждать второй раз, если что-то зависло... неее. |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Вт Май 14, 2024 05:51   |
|
Полезность: Нет оценки
|
VELNIN пишет: | Привет. Удалось понять причины зависания формы на 3L? |
Удалось выяснить, что:
1) проблема не в большом количестве действий при завершении транзакции
2) проблема не в гибернейте
3) проблема не в размещении BLOB/CLOB в базе
4) проблема не в смене сессии на новую из пула
5) вынос расчёта в автономную транзакцию также не помог.
проверяем в настоящий момент:
6) реакция АРМ Навигатор на изменение элементов экранной формы (ну, там - подтягивание нужных элементов в контролы, рефреш и т.п.)
7) влияние динамического вызова на зависание ЭФО
влияние слишком долго открытых курсоров
увы, ЦФТшники не дают никаких подсказок ( |
|
 |
pabrz Участник со стажем
Вступление в Клуб: 27.09.2022
|
Чт Май 16, 2024 10:27   |
|
Полезность: Нет оценки
|
Эмиралька пишет: |
Иногда то, что вы считаете неважной архитектурой является как раз признаком хорошо продуманной архитектуры.
В частности, длительная операция "расчёт отчёта" ОБЯЗАНА, как по мне, коммитить каждый этап расчёта из лога.
Потому что расчёт отчёта - это крайне долго и ждать второй раз, если что-то зависло... неее. |
Ну, тяжелые статистические отчеты никто не отменял, конечно. Разумеется, вопрос в каждом конкретном случае стоит рассматривать отдельно. Впрочем, многопоточность такие ситуации неплохо закрывает, вместе с конвеерными функциями, которые иногда пошустрее селектов оказываются.
ЗЫ. Ну его нафиг, отчеты такие  |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Чт Май 16, 2024 14:13   |
|
Полезность: Нет оценки
|
pabrz пишет: | Эмиралька пишет: |
Иногда то, что вы считаете неважной архитектурой является как раз признаком хорошо продуманной архитектуры.
В частности, длительная операция "расчёт отчёта" ОБЯЗАНА, как по мне, коммитить каждый этап расчёта из лога.
Потому что расчёт отчёта - это крайне долго и ждать второй раз, если что-то зависло... неее. |
Ну, тяжелые статистические отчеты никто не отменял, конечно. Разумеется, вопрос в каждом конкретном случае стоит рассматривать отдельно. Впрочем, многопоточность такие ситуации неплохо закрывает, вместе с конвеерными функциями, которые иногда пошустрее селектов оказываются.
ЗЫ. Ну его нафиг, отчеты такие  |
Конвеерные функции, к сожалению, в DBI не поддерживают. |
|
 |
pabrz Участник со стажем
Вступление в Клуб: 27.09.2022
|
Пт Май 17, 2024 01:29   |
|
Полезность: Нет оценки
|
Эмиралька пишет: | pabrz пишет: | Эмиралька пишет: |
Иногда то, что вы считаете неважной архитектурой является как раз признаком хорошо продуманной архитектуры.
В частности, длительная операция "расчёт отчёта" ОБЯЗАНА, как по мне, коммитить каждый этап расчёта из лога.
Потому что расчёт отчёта - это крайне долго и ждать второй раз, если что-то зависло... неее. |
Ну, тяжелые статистические отчеты никто не отменял, конечно. Разумеется, вопрос в каждом конкретном случае стоит рассматривать отдельно. Впрочем, многопоточность такие ситуации неплохо закрывает, вместе с конвеерными функциями, которые иногда пошустрее селектов оказываются.
ЗЫ. Ну его нафиг, отчеты такие  |
Конвеерные функции, к сожалению, в DBI не поддерживают. |
Пункт 3.9 Рекомендаций по адаптации кода на PLPLUS для работы с DBI:
Пункт не актуален. Ограничений по использованию pipelined function нет.
---
Но вопрос им на всякий случай задал.
---
UPD. Получил ответ:
Поддерживается и работает. Все можно. Это кстати касается и опций типа select from table(<конрвеерная функция>). Тоже поддерживается и работает. |
|
 |
Эмиралька Эксперт
Вступление в Клуб: 09.11.2015
|
Пт Май 17, 2024 05:48   |
|
Полезность: Нет оценки
|
pabrz пишет: | Пункт не актуален. Ограничений по использованию pipelined function нет.
---
Но вопрос им на всякий случай задал.
---
UPD. Получил ответ:
Поддерживается и работает. Все можно. Это кстати касается и опций типа select from table(<конрвеерная функция>). Тоже поддерживается и работает. |
Хорошая новость! |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|