isql TimeOut Connect
Модераторы: kdv, Alexey Kovyazin
isql TimeOut Connect
может этот вопрос не по теме, но все же, при попытке конекта к удаленному серверу isql долго ждет чтоб сказать что хост не отвечает, подскажите где выставляется таймоуты чтоб не долго не ждать.
FB 1.5
Linux Suse 11.1
FB 1.5
Linux Suse 11.1
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: isql TimeOut Connect
firebird.conf
Re: isql TimeOut Connect
т.е. ты хочешь сказать что isql берет локальные натройки сервера при коннекте к удаленному серверу?
а если локально сервера нет, а есть только утилиты?
а если локально сервера нет, а есть только утилиты?
Re: isql TimeOut Connect
вообще нигде это не выставить. Потому что до тех пор пока соединение не состоялось или не обломилось с коннектом, за таймаут отвечает сетевая подсистема операционной системы.
Например, чтобы найти ip по имени, ОС должна сначала зарезолвить имя в DNS. А если DNS недоступен, то она будет к нему стучаться пока не получит облом. И т.д. То есть, FB тут ни при чем вообще.
Например, чтобы найти ip по имени, ОС должна сначала зарезолвить имя в DNS. А если DNS недоступен, то она будет к нему стучаться пока не получит облом. И т.д. То есть, FB тут ни при чем вообще.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: isql TimeOut Connect
При чём тут isql? Настройки из firebird.conf берёт fbclient. Или у тебя и его локально нет, а утилиты для доступа к серверу используют телепатию?..serj77 писал(а):т.е. ты хочешь сказать что isql берет локальные натройки сервера при коннекте к удаленному серверу?
а если локально сервера нет, а есть только утилиты?
Re: isql TimeOut Connect
о каких "локальных настройках" речь, и какие параметры коннекта к серверу может взять fbclient из firebird.conf?
ну, допустим, номер порта, и то если на сервере порт изменен на другой.
НИКАКИХ настроек таймаута соединения в firebird.conf нет. И на клиенте этот файл нафиг не нужен, по большому счету.
Дим, ты прочитай вопрос исходный еще раз. У него или ФБ вырублен, или закрыт firewall-ом, или ДНС не настроен на клиенте, и клиент не видит сервера по имени. ЭТОТ таймаут если и можно настроить, то в операционке. В виндах - либо в реестре руками, если такая настройка там вообще есть.
Или ты хочешь сказать, что ConnectionTimeout на это влияет, и если мы поставим 30, то если сервак недоступен, то клиент отвалится через 30 секунд?
ну, допустим, номер порта, и то если на сервере порт изменен на другой.
НИКАКИХ настроек таймаута соединения в firebird.conf нет. И на клиенте этот файл нафиг не нужен, по большому счету.
Дим, ты прочитай вопрос исходный еще раз. У него или ФБ вырублен, или закрыт firewall-ом, или ДНС не настроен на клиенте, и клиент не видит сервера по имени. ЭТОТ таймаут если и можно настроить, то в операционке. В виндах - либо в реестре руками, если такая настройка там вообще есть.
Или ты хочешь сказать, что ConnectionTimeout на это влияет, и если мы поставим 30, то если сервак недоступен, то клиент отвалится через 30 секунд?
Re: isql TimeOut Connect
Если дело дошло до вызова select, то да, отвалится через 30 сек.kdv писал(а):Или ты хочешь сказать, что ConnectionTimeout на это влияет, и если мы поставим 30, то если сервак недоступен, то клиент отвалится через 30 секунд?
Например сервер ТАК занят, что не смог ответить за 30 сек. Или его ответ не пришёл за 30 сек. И т.п.
Re: isql TimeOut Connect
речь то про коннект.
Re: isql TimeOut Connect
RTFM: socket, selectkdv писал(а):речь то про коннект.
Re: isql TimeOut Connect
Во во, упоминание об этом в инете где то видел но только упоминание. А можно по подробнее пожалуйста локально система Suse, удаленный комп не имеет значения т.к. он выключен к примеру. Обьясню для чего чтоб понятней было, у меня 15 удаленных серверв и я скриптом разкладываю всякие изменения, и если где нить сервер выключен (бывает такое), чтоб isql не ждал 5 минут пока тайм аут не выйдет, а сократить время ожидания до минуты примерно [-o<hvlad писал(а):RTFM: socket, selectkdv писал(а):речь то про коннект.
Спасибо.
-
- Заслуженный разработчик
- Сообщения: 1436
- Зарегистрирован: 15 сен 2005, 09:05
Re: isql TimeOut Connect
Ну, либо так, либо его описание врёт, как и сообщения в firebird-support:kdv писал(а):Или ты хочешь сказать, что ConnectionTimeout на это влияет, и если мы поставим 30, то если сервак недоступен, то клиент отвалится через 30 секунд?
Помнится, и на sql.ru был топик в котором говорилось, что это именно таймаут коннекта, а не предельное время ожидания выполнения запроса.firebird.conf писал(а):# ----------------------------
# Client Connection Settings (Basic)
#
# Seconds to wait before concluding an attempt to connect has failed.
#
# Type: integer
#
#ConnectionTimeout = 180
Re: isql TimeOut Connect
Для тех, кто не понимает что такое socket api
Когда устанавливается TCP\IP соединение, клиент делает достаточно много вызовов. Это и создание локального сокета (socket), и ресолвинг имени сервера в адрес (gethostbyname), и установление соединения (connect) и т.д. Ни один из них не имеет тайм-аута.
Сразу после установления физического соединения, клиент и сервер обмениваются пакетами (аутентификация и прочее).
select - это вызов socket API, который, грубо говоря, ожидает появления данных в сокете.
Так вот ConnectionTimeout - это таймаут именно этого вызова select.
При нормально работающей сети, никакой другой вызов не должен тормозить.
Чаще всего тормозит gethostbyname из-за криво настроенного DNS.
Делать коннект асинхронно, для того чтобы таймаут работал и в кривом окружении, не входит в наши ближайшие планы.
Кому жмёт - делает это в своём приложении.
Когда устанавливается TCP\IP соединение, клиент делает достаточно много вызовов. Это и создание локального сокета (socket), и ресолвинг имени сервера в адрес (gethostbyname), и установление соединения (connect) и т.д. Ни один из них не имеет тайм-аута.
Сразу после установления физического соединения, клиент и сервер обмениваются пакетами (аутентификация и прочее).
select - это вызов socket API, который, грубо говоря, ожидает появления данных в сокете.
Так вот ConnectionTimeout - это таймаут именно этого вызова select.
При нормально работающей сети, никакой другой вызов не должен тормозить.
Чаще всего тормозит gethostbyname из-за криво настроенного DNS.
Делать коннект асинхронно, для того чтобы таймаут работал и в кривом окружении, не входит в наши ближайшие планы.
Кому жмёт - делает это в своём приложении.
Re: isql TimeOut Connect
поправь скрипт пусть пингует сервер перед раздачейserj77 писал(а): у меня 15 удаленных серверв и я скриптом разкладываю всякие изменения, и если где нить сервер выключен (бывает такое), чтоб isql не ждал 5 минут пока тайм аут не выйдет, а сократить время ожидания до минуты примерно [-o<
Спасибо.
Код: Выделить всё
if ping -c 2 $ip_1
then
:
else