-
И все-таки вопрос : нафига стучать в дверь ?)
Ну ответил тебе сосед из-за двери "Кто там ?", и что ?
Ответить "Сто грамм", чтобы тебе открыли дверь, прямо сейчас ты не сможешь, тебе ж еще в ларек нужно сбегать за пузырьком - не с пустыми же руками в гости ходить)
А прибежав из ларька с пузырьком ты обнаружишь, что на тот же стук никакого "ктотама" из-за двери не слышно - соседа срочно приспичило уйти по своим делам)
-
щас по итогу окажется, что все это надо только для того, чтобы в случае если тама никого нет, но должно быть, - получить письмо, подойти к машине и мышкой запустить упавший сервис.
а других путей конечно же нет.
ну или он хочет собрать статистику доступности в сети серверов за год. и продать ее исследователям.
-
> PEAKTOP © (22.06.09 12:36) [19]
У нас нет таких сложных случаев. Если Firebird-сервер работает, то он работает на порту по-умолчанию, без файрволлов, проксей и т.п. > Сергей М. © (22.06.09 12:39) [20]
Это своеобразный агент для автонастройки клиента. Сам клиент тяжелый, да и ждать пока истечет таймаут у IBDatabase.Open(); тоже не хочеться. Но серверов может быть несколько, и т.к. клиент работает только на чтение из БД, то к какому из серверов подключаться без разницы. Нужно определить первый в списке из ответивших, и уже для него запускать клиента.
-
таймаут-то большой не от того, что сервер долго думает, а от того, что в строке подключения имя хоста а не адрес, а хост выключен.
-
то есть твоя мудрая проверка самописным классом даст точно такой же таймаут.
-
> b/@. © (22.06.09 12:51) [22]
Тогда вполне достаточной будет попытка коннекта к 3050-му порту без акта прикл.обмена.
Если на этом порту хоть кто-то слушает, т.е попытка коннекта по трансп.протоколу была успешной, следом можно пытаться выполнить IBDatabase.Open, т.е. попытку коннекта по прикл.протоколу.
Если там слушает кто угодно, но не FB-сервер, IBDatabase.Open тут же возбудит соотв.исключение.
-
от торомозов резолва, если виноват он, это не поможет.
-
> от торомозов резолва
Ну это отдельная песня, никак не связанная с изнач.вопросом
-
> Это своеобразный агент для автонастройки клиента. Сам клиент > тяжелый, да и ждать пока истечет таймаут у IBDatabase.Open(); > тоже не хочеться.
Незафигом ждать истечения таймаута, вместо того чтоб послать запрос на следующий адрес.
|