Потдержка транзакции

  • Автор темы Автор темы SMitty
  • Дата начала Дата начала
S

SMitty

Здравствуйте форумчане.
Есть такая ситуация: пишу клиента на Delphi 7 к бд Oracle. На сервере FireWall настроен так, что отрубает транзакции по которым нет обмена данными долгое время.
Так вот суть вопроса: из Delphi приходится запускать довольно большие хранимые процедуры, они выполняются долго, соответственно FireWall транзакцию отрубает. Как можно обойти этот момент?
Буду рад любым идеям.
 
Как можно обойти этот момент?
Зажать админам руки в дверь за такую конфигурацию фаервола

Или как-то уменьшать ХП, хотя это и не всегда возможно. А так анализировать план запроса, пытаться добиться минимальной "стоимости" запроса.
 
То есть стараться уложится в заданное время?
Я пытался сделать в отдельном потоке в рамках тойже транзакции непрерывный цикл запросов типа "select 1 from dual".
Но все равно приходится ждать ответа процедуры.
 
То есть стараться уложится в заданное время?
Да, это прежде всего...
Кстати, а по какому критерию определялось время простоя, после которого транзакция отменяется?
приходится запускать довольно большие хранимые процедуры, они выполняются долго
Долго это сколько?

Я так понимаю, что для обрубания транзакций должны быть веские доводы, а вариант
сделать в отдельном потоке в рамках тойже транзакции непрерывный цикл запросов типа "select 1 from dual".
это из ряда "а нам все равно"
 
а вариант
Цитата(SMitty @ 4:03:2008 - 18:01)
сделать в отдельном потоке в рамках тойже транзакции непрерывный цикл запросов типа "select 1 from dual".

это из ряда "а нам все равно"
Это так и есть. Так как должно применяться к внешним пользователям, а приложение было написано для администраторов данных.

Кстати, а по какому критерию определялось время простоя, после которого транзакция отменяется?
Я так понимаю просто по статистике взяли среднее. Около пяти минут.
Процедура же может выполняться до получаса.
 
Процедура же может выполняться до получаса.
На мой взгляд, это очень долго и нужно попытаться что-то сделать. Хотя все ИМХО, т.к. структуры таблиц и ХП мне не известны.

Я не специалист в конфигурации фаерволов и администрирования Оракла, но может стоит попытаться не применять ограничения к транзакциям для приложения? Это больше вопрос к администраторам...

P.S. Было бы интересно послушать мнение других форумчан
 
Да, ХП действительно выполняются очень долго. Приходится ворочить очень большими массивами данных. Поэтому переписывать процедуры или пытаться их разбить на много маленьких смысла не имеет.
Ситуацию осложняет то, что и приложение и ХП написаны намного раньше, чем введена эта конфигурация фаервола.
 
SMitty, тема всё больше уходит в душевные излияния.
Проблему можно решить следующими способами:
1 - изменить конфигурация фаервола
2 - изменить ХП
3 - совместно п.1 и п.2
4 - удалять гланды через ..., пытаясь "крутить" данные, чтобы наколоть фаервол.
Все остальные способы - различные вариации вышеизложенных. Остальное - Ваш выбор, т.к. никакой информации у нас нет
 
Огромное спасибо European и sax_ol за участие. Основные идеи решения я понял, а дальше думать буду
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab