|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
Добрый день. Прошу помочь в нестандартной ситуации. Есть приложение, которое работает с Oracle базой. Периодически пользователь нажимает некую кнопку, которая выполняет некоторый расчет (запускается процедура в БД). И ровно через 30 минут после этого, несмотря на активную работу с базой, возникает ошибка "exceeded maximum idle time, please connect again". Пользователю приходится перезапускать приложение. Если эта процедура не запускается, то ошибки не возникает. Если запускается, то ошибка через 30 минут возникает всегда. Я понимаю, что означает эта ошибка, но очевидно, что факт запуска процедуры никак не должен влиять на ее возникновение. Есть только одно место в процедуре пересчета, которое может (на мой взгляд) влиять на эту ситуацию. В этом месте, пересчет создает несколько джобов, запускает их и ожидает их завершения. Сделано это для ускорения очень "тяжелого" пересчета. Выглядит это примерно следующим образом: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
Соответственно вопрос: может ли этот код влиять на возникновение ошибки (ну типа для выполнения джобов создаются сессии, которые после расчета неактивны и через 30 минут завершаются вместе с родительской) ? Можно это как то купировать ? Может ли быть какая то другая причина возникновения ошибки ? Заранее спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 16:13 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manatee, скорректировать настройки resource manager или совсем отключить, вопрос к dba. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 16:19 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
Vivat!Sanblack-manatee, скорректировать настройки resource manager или совсем отключить, вопрос к dba. Спасибо, но к сожалению, это мало реальный вариант. Корпоративная безопасность у нас несколько выходит за рамки здравого смысла. В любом случае, ну это же явно неверное поведение базы. И как кстати можно скорректировать настройки ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 16:37 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manateeВ любом случае, ну это же явно неверное поведение базы. И как кстати можно скорректировать настройки ? Это штатное поведение базы, если настроен лимит на idle. В счет лимита идет весь idle (все события ожидания класса idle), по этой причине данный лимит непригоден для автоматического отключения простаивающих сессий, что, вероятно, было целью dba при настройке профиля. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 17:02 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
andrey_anonymousblack-manateeВ любом случае, ну это же явно неверное поведение базы. И как кстати можно скорректировать настройки ? Это штатное поведение базы, если настроен лимит на idle. В счет лимита идет весь idle (все события ожидания класса idle), по этой причине данный лимит непригоден для автоматического отключения простаивающих сессий, что, вероятно, было целью dba при настройке профиля. да ладно IDLE_TIME specifies the permitted periods of continuous inactive time during a session, expressed in minutes ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 17:24 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
DВАда ладно IDLE_TIME specifies the permitted periods of continuous inactive time during a session, expressed in minutes Угу. На сарае тоже написано, а там, промеждупрочим, дрова. Эта дрянь как-то рубила мне выгрузки данных - копила idle-ы с "more data to client", 5-6 гиг выгружало и рвалось, накопив ~15 минут простоя. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 17:33 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manateeЕсли эта процедура не запускается, то ошибки не возникает. Если запускается, то ошибка через 30 минут возникает всегда. т.е. пользователь запустил и тупо сидит ждет пока отработает процедура, опрашивающая джобы на предмет завершения их работы? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 17:34 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
andrey_anonymousDВАда ладно IDLE_TIME specifies the permitted periods of continuous inactive time during a session, expressed in minutes Угу. На сарае тоже написано, а там, промеждупрочим, дрова. Эта дрянь как-то рубила мне выгрузки данных - копила idle-ы с "more data to client", 5-6 гиг выгружало и рвалось, накопив ~15 минут простоя. ну тут еще как-то можно собрать все эти more data to client в permitted periods of continuous inactive , а вот то что процедура каждые 5 сек делает запрос, это совсем другое дело Что-то мне кажется сама процедура тоже в отдельном потоке запускается ) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 17:38 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
DВАну тут еще как-то можно собрать все эти more data to client в permitted periods of continuous inactive black-manateeвыполняет некоторый расчет (запускается процедура в БД). И ровно через 30 минут после этого ... "exceeded maximum idle time, please connect again". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2019, 19:14 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
DВАblack-manateeЕсли эта процедура не запускается, то ошибки не возникает. Если запускается, то ошибка через 30 минут возникает всегда. т.е. пользователь запустил и тупо сидит ждет пока отработает процедура, опрашивающая джобы на предмет завершения их работы? Процедура запускается в общем потоке, так что да, ждет. Но занимает это минуты три. А затем он (пользователь) продолжает работать. Самое печальное в том, что пользователь, после расчета использует данные расчета, которые ложатся во временные таблицы, время действия которых - сессия. То есть я не могу для расчета открыть новое соединение и запустить в процу в отдельной сессии. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 16:18 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
Самое печальное в том, что пользователь, после расчета использует данные расчета, которые ложатся во временные таблицы, время действия которых - сессия. То есть я не могу для расчета открыть новое соединение и запустить в процу в отдельной сессии. :( Хотя.... Если я запущу процедуру в отдельном потоке, считаю данные из временных таблиц во внутренние структуры программы, потом вернусь к своей сессии, заполню временные таблицы... Это же по идее решит мою проблему ? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 16:21 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manateeСамое печальное в том, что пользователь, после расчета использует данные расчетаНе морочь форум. Сначала джобы мешали тебе танцевать, теперь временные таблицы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.05.2019, 17:49 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
-2-black-manateeСамое печальное в том, что пользователь, после расчета использует данные расчетаНе морочь форум. Сначала джобы мешали тебе танцевать, теперь временные таблицы. Не читал, но осуждаю. Если внимательно прочитаете, то написано вполне ясно. Джобы приводят к вышеуказанной ошибке. Запустить процедуру с джобами в другой сессии (что по идее решило бы проблему) мешают временные таблицы, которые нужно использовать после выполнения процедуры. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 09:45 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manateeЗапустить процедуру с джобами в другой сессии (что по идее решило бы проблему) мешают временные таблицы используйте не временные таблицы ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 10:13 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manateeЕсли внимательно прочитаете, то написано вполне ясно.мне не ясно, какое отношение временные таблицы имеют к приведенному коду. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 15:21 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
alex-lsblack-manateeЗапустить процедуру с джобами в другой сессии (что по идее решило бы проблему) мешают временные таблицы используйте не временные таблицы Используется монстроидальная система, которую писали несколько десятков слабо взаимодействующих между собой программистов, в течение более десяти лет. Выкинуть ее или кардинально переделать не так просто из-за правила: вот работает, давайте не будем это трогать... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 17:05 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
-2-black-manateeЕсли внимательно прочитаете, то написано вполне ясно.мне не ясно, какое отношение временные таблицы имеют к приведенному коду. Дубль 3 Запускаемая процедура заполняет временные таблицы. Эти таблицы используются уже после отработки процедуры программой. По этой причине нельзя запустить процедуру в отдельной сессии, которую можно было бы убить после расчета. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 17:08 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manateeмне не ясно, какое отношение временные таблицы имеют к приведенному коду. Дубль 3 Запускаемая процедура заполняет временные таблицы. Эти таблицы используются уже после отработки процедуры программой. По этой причине нельзя запустить процедуру в отдельной сессии, которую можно было бы убить после расчета.[/quot] и джобы ухитряются как-то работать с временной таблицей )) чудеса. Давайте все месте разгадывать ваш ребус ))) полет фантазий не ограничен ... |
|||
:
Нравится:
Не нравится:
|
|||
26.05.2019, 17:49 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
DВАblack-manateeмне не ясно, какое отношение временные таблицы имеют к приведенному коду. Дубль 3 Запускаемая процедура заполняет временные таблицы. Эти таблицы используются уже после отработки процедуры программой. По этой причине нельзя запустить процедуру в отдельной сессии, которую можно было бы убить после расчета. и джобы ухитряются как-то работать с временной таблицей )) чудеса. Давайте все месте разгадывать ваш ребус ))) полет фантазий не ограничен[/quot] Я извиняюсь, что не совсем понятно написал. В общем так: запускается некая процедура. Ее цель рассчитать кое-какие данные и записать во временные таблицы. Затем после расчета, программа использует эти данные из временных таблиц. Все вместе: запуск процедуры, запуск джобов внутри процедуры и дальнейшее использование временных таблиц - все происходит в рамках одной сессии. Если сессию закрыть, то содержимое временных таблиц естественно уничтожается. Проблема в том, что через 30 минут после запуска процедуры возникает вышеуказанная ошибка. Пользователю приходится перегружать программу и снова запускать процедуру. Почему это происходит, я собственно и хотел узнать создав эту тему. Мое предположение - это из-за джобов. (Просто более не из-за чего). Поскольку я так и не узнал из-за чего происходит ошибка, я решил сделать следующим образом: запускать процедуру в другой сессии. Затем вытаскивать в этой другой сессии содержимое временных таблиц и засовывать во временные таблицы в рамках уже изначальной сессии с которой работает пользователь. А ту сессию, в которой запускал процедуру закрывать (вместе с содержимым временных таблиц, которое уже перенес в старую сессию). Надеюсь это решит мою проблему. Всем спасибо за помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 07:08 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manateeКорпоративная безопасность у нас несколько выходит за рамки здравого смысла.black-manateeИспользуется монстроидальная система, которую писали несколько десятков слабо взаимодействующих между собой программистов, в течение более десяти лет. Выкинуть ее или кардинально переделать не так просто из-за правила: вот работает, давайте не будем это трогать...Только мне очевидно, что безопаснюки покусились на "не трогать"? И пошли вразрез с "политикой" говно не ворошить? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 07:49 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
Elicblack-manateeКорпоративная безопасность у нас несколько выходит за рамки здравого смысла.black-manateeИспользуется монстроидальная система, которую писали несколько десятков слабо взаимодействующих между собой программистов, в течение более десяти лет. Выкинуть ее или кардинально переделать не так просто из-за правила: вот работает, давайте не будем это трогать...Только мне очевидно, что безопаснюки покусились на "не трогать"? И пошли вразрез с "политикой" говно не ворошить? Ну если про 30 минут неактивности, то это не очень значительное изменение. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 07:55 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manateeНу если про 30 минут неактивности, то это не очень значительное изменение.А тема-то про что? Не борьбу безопасников с ветряными мельницами? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 08:03 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manateeрешил сделать следующим образомЕсли ты разработчик, что мешает провести минимальную диагностику. Выяснить действительно ли установлено ограничение idle_time и в какую величину. Посмотреть, есть ли сессии превышающие эту величину. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 08:26 |
|
Проблема exceeded maximum idle time, please connect again
|
|||
---|---|---|---|
#18+
black-manateealex-lsпропущено... используйте не временные таблицы Используется монстроидальная система, которую писали несколько десятков слабо взаимодействующих между собой программистов, в течение более десяти лет. Выкинуть ее или кардинально переделать не так просто из-за правила: вот работает, давайте не будем это трогать... тем более, теперь есть отличный предлог для того, чтобы разобраться, найти узкие места :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.05.2019, 08:50 |
|
|
start [/forum/topic.php?fid=52&msg=39818215&tid=1882466]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 264ms |
total: | 387ms |
0 / 0 |