|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Порядок инициализации системы оповещений |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
После того как Юзер зарегистрировался в SVA из
SY_ControlPanel вызывается |
|
|
|
|
|
|
|
|
SY_MG_ToolBar.SY_MG_INIT, который создает
ссылку на обьект драйвера |
|
|
|
|
|
|
|
|
Set SY_MainMDI.NET_Listener = New
SVA_NETWORK.SVA_Client, |
|
|
|
|
|
|
|
SQL |
|
читает из INI-файла конфигурацию TCP/IP
прокси-сервера и далее вызывает |
|
|
|
SVA |
|
|
|
|
процедуру SQL-сервера SY_MG_Connect, в которой
сообщает о себе следующее: |
|
|
|
|
|
|
|
|
@Currentuser, CurrentUser, "@EID",
EID, "@IP", ProxyIP, "@Port", ProxyPort + CurrentUser |
|
|
|
|
|
|
|
|
|
|
|
SY_MG_Connect возвращает номер коннекта
(фактически номер записи в SY_MG_ConnectTab), |
|
|
|
|
который
позволяет корректно поставить в этой таблице время завершения сеанса. |
|
|
|
|
|
|
Числа 1,2,3,4 - возвращенные этой процедурой
имеют специальное значение - сообщают, что |
|
|
|
|
|
драйвер TCP/IP на SQL-сервере не загрузился. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Если драйвер на SQL-сервере загрузился, ссылка
на обькт драйвера в SVA создалась и установлен |
|
|
|
|
режим работы по оповещениям, то далее в
Start_Net_Listener инициализируется работа драйвера. |
|
|
|
|
Если установлен режим работы драйвера по
опросам, то драйвер можно проверять из отдельной формы. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SQLSENDER.SQL_Sender |
|
|
PROXY-SERVER |
NET_Listener |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INIT(ProxyIP, ProxyPort + CurrentUser) |
|
|
|
SY_MG_SEND 'Load' |
|
|
|
|
|
|
|
|
|
|
|
SY_MG_SEND 'Start' |
|
|
|
|
|
CONNECT |
|
|
|
|
SY_MG_SEND 'Connect' |
|
|
|
|
|
|
|
|
|
|
|
SY_MG_SEND 'Write' |
|
|
|
|
|
READ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
после
выполнения READ, |
|
|
|
При первичном коннекте через |
|
|
|
|
|
в драйвере создается новый поток и |
|
|
SY_MG_Connect передается ключ |
|
|
|
|
после возврата управления в SVA |
|
|
"999", который означает, что за ним |
|
|
|
|
драйвер живет своей жизнью и |
|
|
будут сразу передаватся номер порта, |
|
|
|
|
находясь в бесконечном цикле |
|
|
номер юзера и побайтово Айпишнник, |
|
|
|
|
прослушки сообщений из сети при |
|
|
на котором PROXY-Сервер будет ждать |
|
|
|
|
поступлении нового сообщения |
|
|
коннекта от NET_Listener'а (возможно |
|
|
|
|
вызывает событие в SVA |
|
|
|
на различных интерфейсах компа). |
|
|
|
|
|
|
|
|
|
|
При получении этого |
|
|
|
|
|
|
|
|
|
|
|
ключа от SQL_Sender'а PROXY-SERVER |
|
|
|
|
NET_Listener_MyEvent |
|
|
|
создает на внешнем интерфейсе |
|
|
|
|
|
|
|
|
|
|
(обращенном к NET_Listener'у) новый |
|
|
|
|
|
|
|
|
|
|
открытый порт и новый обьект, который |
|
|
|
|
Обработчик
события находится в |
|
|
постоянно выбирает из очереди, |
|
|
|
|
SY_MainMDI (по месту определения |
|
|
поступающей
для передачи от |
|
|
|
|
обькта Public WithEvents NET_Listener |
|
|
SQL_Sender'а сообщения и передает |
|
|
|
|
|
|
|
|
|
|
их NET_Listener'у. |
|
|
|
|
|
|
При получении оповещения вызывается |
|
|
Новый открытый порт инициализируется |
|
|
|
|
SY_MGToolbar (та же, что вызывается |
|
|
в PROXY-SERVER'е при коннекте к нему |
|
|
|
|
и по таймеру в режиме работы по опросам) |
|
|
NET_Listener'а |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SY_MG_ProxyParm |
|
|
|
PROXY.exe.config |
|
|
|
|
|
|
APP.INI |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Итак - до начала работы состояние портов - |
SY_MG_INIT_1.gif |
|
|
|
|
|
|
|
|
|
После успешной инициализации - |
|
SY_MG_INIT_2.gif |
|
|
|
|
|
|
|