Страница 1 из 1

TIMEOUT (Linux, C, API)

Добавлено: 18 ноя 2009, 23:01
GANGSTER
Вобщем наткнулся я на пока что нерешабельную для меня проблему

Где и как можно настроит timeout для операций с БД FireBird ???
например при пропадании сети isc_start_transaction(...) зависает у меня на 15мин!!!!!!!!
А isc_attach_database(...) на ASPLinux-е нормально выдает ошибку через 20сек. но на Slax зависает на тех же 15 мин.

пробовал изменять настройки в firebird.conf ConnectionTimeOut/DummyPacketInterval
но клиенская часть на это никак не реагировала...

Please Help!!!

Re: TIMEOUT (Linux, C, API)

Добавлено: 19 ноя 2009, 15:46
kdv
www.ibase.ru/devinfo/keepalive.htm

подобные задержки зависят только от подсистемы tcp на конкретном компе и в ОС. Вот вызвал клиент функцию "отправить пакет" в сокет, а с той стороны ничего. И? Клиент висит, естественно, ждет ответа. Т.е. виснет он на вызове системной функции. Теперь Вам стало легче? :-)

Re: TIMEOUT (Linux, C, API)

Добавлено: 19 ноя 2009, 17:30
GANGSTER
спасибо! :)
но пока мне легче не стало
моя программма никак не реагирует на изменение

net.ipv4.tcp_keepalive_intvl, net.ipv4.tcp_keepalive_time, net.ipv4.tcp_keepalive_probes

как isc_start_transaction(...) ждала 15 мин., так и дальше ждет... вот.. :?
:cry:

Re: TIMEOUT (Linux, C, API)

Добавлено: 20 ноя 2009, 13:31
Dimitry Sibiryakov
GANGSTER писал(а):моя программма никак не реагирует на изменение

net.ipv4.tcp_keepalive_intvl, net.ipv4.tcp_keepalive_time, net.ipv4.tcp_keepalive_probes
И это вполне логично, поскольку таймауты ожидания ACK и количество ретрейнов никак с keep-alive не связаны.

Re: TIMEOUT (Linux, C, API)

Добавлено: 22 ноя 2009, 23:12
GANGSTER
2 Dimitry Sibiryakov
а как мне настроить таймаут ожидания ACK ?