Тут много было разговоров про то как на сервере Classic разбиратся с
зависшими коннектами, когда клиент неожиданно для себе умер, а сервер
об этом не знает, так как винда считает что коннект жив.
Приводилась ссылка на статью где расписано как работает KeepAlive
механизм винды.

Тут у соратников появилась таже проблема на своем софте, рассказал про
KeppAlive и про то что если протокол позволяет то можно клиенту слать
что-нибудь для проверки связи.
И вот как они вышли из этой ситуации: сервер время от времени пытается
отправить через сокет клиенту (внимание!) byte[0], при этом винда
производит проверку наличия клиента на второй стороне коннекта, если
клиент есть ему ничего не отправляется, а если клиента уже нет, то
выкидывается исключение.

Может я сумбурно рассказал, но мне подумалось что это же можно
применить в Firebird Classic для более быстрого отлова умерших
клиентов?

Ответить