Проблема с "подвисшими" пользователями

Описание проблемы

Данная ситуация возникает в сетевом режиме работы с программой, когда при возникновении аварийных ситуаций, например, при внезапном отключении питания компьютера пользователя и последующим возобновлением работы пользователя с программой СБиС++, сервер  с запозданием получает сообщение о разрыве передачи данных. Если, например, до выключения питания компьютера, пользователь работал с записью в программе, то может оказаться, что при возобновлении работы, сервер не опознает этого пользователя и выдаст соответствующее сообщение об отсутствии данного пользователя.

Решение проблемы

Для разрешения таких и подобных ситуаций необходимо в реестре операционной системы указать правильное значение параметра HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\ \KeepAliveTime, KeepAliveInterval.

Эти параметры контролируют, как часто TCP пытается проверить, что соединение всё еще доступно, путем посылки пакетов требующих подтверждения. Если удаленная система отвечает и функционирует, это повод чтобы оставить данное соединение "живым". Пакеты, требующие подтверждения - не посылаются "по умолчанию" операционной системой. Эта опция обычно задействуется приложениями.

Тип: REGDWORD;

Значение: (по умолчанию параметра нет = 7,200,000 миллисекунд = 120 минут; 1 = 0xFFFFFFFF) и

Тип: REGDWORD;

Значение: (по умолчанию параметра нет = 1 секунда = 1000 миллисекунд)