За последние 24 часа нас посетили 17509 программистов и 1404 робота. Сейчас ищут 1936 программистов ...

Таймаут соединения

Тема в разделе "Oracle Database", создана пользователем GreatWasp, 29 май 2008.

  1. GreatWasp

    GreatWasp Активный пользователь

    С нами с:
    11 янв 2008
    Сообщения:
    94
    Симпатии:
    0
    Адрес:
    Узбекистан, Ташкент.
    Добрый день, следующая проблема.
    Стоит удаленный сервер с Б.Д. ОРАКЛ. Для произведения некоторых операций в этой базе, мой скрипт стартует транзакцию, соединяется с Б.Д. и подтверждает либо откатывает транзакцию в зависимости от значения, которая возвращает хранимая процедура удаленной базы.
    Удаленная Б.Д. слишком перегружена и отвечает по 15-20 секунд. Поэтому мои транзакции становятся в очередь, и происходит очень некрасивая ситуёвина. Что делать? Можно как-то таймаут поставить на соединение с удаленной базой (но при этом чтобы хранимая процедура не исполнялась если клиент по таймауту отлетел)?
     
  2. GreatWasp

    GreatWasp Активный пользователь

    С нами с:
    11 янв 2008
    Сообщения:
    94
    Симпатии:
    0
    Адрес:
    Узбекистан, Ташкент.
    Вообщем оказалось что соединение посто тормозючие с Б.Д. А временами вообще пропадает. Частично проблема решена тем что перед соединением проверяю вот это:
    PHP:
    1. ...............
    2. public function checkConnection(){
    3.         $cnn = fsockopen("10.xxx.xxx.xxx", "1521", $errno, $errstr, 2);
    4.         if (!$cnn){
    5.             throw new Zend_Exception("Сервер поставщика услуг в данный момент не доступен для системы", 1015);
    6.         }
    7.         return true;
    8.     }