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

Тема в разделе "Delphi - Базы данных", создана пользователем SMitty, 4 мар 2008.

  1. SMitty

    SMitty Гость

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

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    Зажать админам руки в дверь за такую конфигурацию фаервола

    Или как-то уменьшать ХП, хотя это и не всегда возможно. А так анализировать план запроса, пытаться добиться минимальной "стоимости" запроса.
     
  3. SMitty

    SMitty Гость

    Репутация:
    0
    То есть стараться уложится в заданное время?
    Я пытался сделать в отдельном потоке в рамках тойже транзакции непрерывный цикл запросов типа "select 1 from dual".
    Но все равно приходится ждать ответа процедуры.
     
  4. European

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    Да, это прежде всего...
    Кстати, а по какому критерию определялось время простоя, после которого транзакция отменяется?
    Долго это сколько?

    Я так понимаю, что для обрубания транзакций должны быть веские доводы, а вариант
    это из ряда "а нам все равно"
     
  5. SMitty

    SMitty Гость

    Репутация:
    0
    Это так и есть. Так как должно применяться к внешним пользователям, а приложение было написано для администраторов данных.

    Я так понимаю просто по статистике взяли среднее. Около пяти минут.
    Процедура же может выполняться до получаса.
     
  6. European

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    На мой взгляд, это очень долго и нужно попытаться что-то сделать. Хотя все ИМХО, т.к. структуры таблиц и ХП мне не известны.

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

    P.S. Было бы интересно послушать мнение других форумчан
     
  7. European

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    Относительно получасовых ХП не очень
     
  8. SMitty

    SMitty Гость

    Репутация:
    0
    Да, ХП действительно выполняются очень долго. Приходится ворочить очень большими массивами данных. Поэтому переписывать процедуры или пытаться их разбить на много маленьких смысла не имеет.
    Ситуацию осложняет то, что и приложение и ХП написаны намного раньше, чем введена эта конфигурация фаервола.
     
  9. European

    Репутация:
    0
    Регистрация:
    4 сен 2006
    Сообщения:
    2.566
    Симпатии:
    2
    SMitty, тема всё больше уходит в душевные излияния.
    Проблему можно решить следующими способами:
    1 - изменить конфигурация фаервола
    2 - изменить ХП
    3 - совместно п.1 и п.2
    4 - удалять гланды через ..., пытаясь "крутить" данные, чтобы наколоть фаервол.
    Все остальные способы - различные вариации вышеизложенных. Остальное - Ваш выбор, т.к. никакой информации у нас нет
     
  10. SMitty

    SMitty Гость

    Репутация:
    0
    Огромное спасибо European и sax_ol за участие. Основные идеи решения я понял, а дальше думать буду
     
Загрузка...
Похожие Темы - Потдержка транзакции
  1. Истребитель
    Ответов:
    4
    Просмотров:
    5.514

Поделиться этой страницей