Приложение 5. Проверка работы сетевого клиента в среде ОС UNIX
Условия проверки
-
Для проверки используется два компьютера, один из которых является сервером, другой – клиентом.
-
На обоих компьютерах установлена UNIX подобные ОС (не обязательно одинаковые).
-
На серверном компьютере установлены:
-
ядро СУБД ЛИНТЕР;
-
демонстрационная БД;
-
утилита inl;
-
сетевой драйвер сервера
dbs_tcp
; -
сетевой драйвер клиента
dbc_tcp
.
-
-
Переменная окружения SY00 указывает на каталог демонстрационной БД.
-
К списку каталогов переменной окружения PATH добавлен каталог исполняемых файлов СУБД ЛИНТЕР.
-
На клиентской машине установлены:
-
утилита inl;
-
сетевой драйвер клиент
dbc_tcp
.
-
-
Если не оговорено особо, то в том же каталоге, где расположен драйвер
dbc_tcp
, должен находиться конфигурационный файлnodetab
с описанием узлов сети:RTCP TCPIP < remote host > RTCPS TCPIPS < remote host > L LOCAL 1254
где
< remote host >
должно быть заменено на реальный TCP/IP адрес серверного компьютера. -
Путь к каталогу, содержащему драйвер
dbc_tcp
и утилиту inl, должен быть добавлен к переменной окружения PATH. -
После выполнения очередного пункта проверки клиентский и серверный компьютеры должны быть приведены в исходное состояние, а именно:
-
файл
nodetab
к описанному выше; -
процессы ядра СУБД ЛИНТЕР сетевого драйвера сервера и сетевого драйвера клиента, утилиты inl должны быть остановлены;
-
должны быть удалены или приведены к первоначальному состоянию все файлы, созданные или изменённые в процессе предыдущей проверки.
-
-
Под «попыткой установления соединения c узлом A» следует понимать запуск утилиты inl с ключами:
>inl -u SYSTEM/MANAGER8 -n A
Проверка запуска
-
На клиентском компьютере выполнить команду:
>dbc_tcp
-
Проверить появление процесса
dbc_tcp
в списке процессов:>ps -e | grep dbc_tcp
Проверка завершения работы
-
Запустить процесс сетевого клиента на клиентском компьютере.
-
Определить PID процесса сетевого клиента, просмотрев список всех процессов:
>ps -e | grep dbc_tcp
-
Послать процессу сетевого клиента сигнал TERM:
>kill PID_OF_DBC_TCP
где
PID_OF_DBC_TCP
– идентификатор процесса сетевого сервераdbc_tcp
. -
Просмотрев список процессов, убедится в завершении процесса
dbc_tcp
. -
Снова запустить процесс сетевого клиента на клиентском компьютере и убедиться в активности процесса
dbc_tcp
. -
Выполнить команду завершения работы сетевого клиента:
>dbc_tcp -U
Команда должна завершиться сообщением о посылке сигнала SIGTERM сетевому клиенту. В списке не должно остаться процесса с именем
dbc_tcp
.
Примечание
Команда завершения работы отсутствует в ЗОСРВ «Нейтрино».
Проверка протоколов, декларированных в файле nodetab
-
Создать файл
nodetab
со следующими узлами:N1 TCPIP < remote node > N2 TCPIPS < remote node > N3 LOCAL 1234 N4 LOCALS 2501 N5 ATCPIP N6 ATCPIPS N7 REZ N8 ABCDE
< remote node >
должно быть заменено на реальное доменное имя серверного компьютера. -
Запустить драйвер
dbc_tcp
с указанием полного пути к созданному файлуnodetab
из командной строки. При запуске будет выдана информация о неподдерживаемом протоколе ABCDE. -
Последовательно осуществить попытку соединения с узлами N1-8:
-
при попытке соединении с узлами N1–N4 будет возвращен код завершения 4006 «Ошибка создания сетевого соединения»;
-
при попытке соединении с узлами N5–N7 будет возвращен код завершения 4066 «Сетевой протокол запрещен или не поддерживается»;
-
при попытке соединении с узлом N8 будет возвращен код завершения 4050 «Неизвестное имя сервера».
-
Проверка IP-адреса в файле nodetab
-
На клиентском компьютере в отдельном каталоге создать файл
nodetab
:N1 TCPIP 127.0.0.1 N2 TCPIP localhost N3 TCPIP < remote ip > N4 TCPIP abcd.abcd.abcd N5 TCPIPS 127.0.0.1 N6 TCPIPS localhost N7 TCPIPS < remote ip > N8 TCPIPS abcd.abcd.abcd
где
< remote ip >
должен быть заменен на числовой IP-адрес серверного компьютера. -
Запустить драйвер
dbc_tcp
c указанием в командной строке пути к файлуnodetab
. -
При запуске должна быть напечатана информация о некорректности адреса в описании узла N4 и N8.
-
При попытке соединении с узлами N4, N8 будет возвращен код завершения 4050 «Неизвестное имя сервера».
-
При попытке соединении с узлами N1–N5 будет возвращен код завершения 4006 «Ошибка создания сетевого соединения»;
-
При попытке соединении с узлами N1–N3, N5–N8 будет возвращен код завершения 4006 «Ошибка создания сетевого соединения».
Проверка IP-соединения
-
На серверном компьютере запустить ядро СУБД ЛИНТЕР и сетевой драйвер сервера.
-
На клиентском компьютере запустить сетевой драйвер клиента.
-
Осуществить попытку соединения с узлами RTCP (описание файла
nodetab
для этой проверки см. в пункте «Условия проверки»):>inl -u SYSTEM/MANAGER8 -n RTCP
-
Должно быть получено приглашение:
>SQL
-
Выполнить запрос:
select count(*) from auto;
На терминал должен быть выведен результат запроса.
Проверка тайм-аута клиента
-
На серверном компьютере запустить ядро СУБД ЛИНТЕР и сетевой драйвер сервера.
-
На клиентском компьютере создать файл
nodetab
:RTCP TCPIP < remote host > 1060 1 20 RTCPS TCPIPS < remote host > 1060 1 20
где
< remote host >
должно быть заменено на реальный TCP/IP адрес серверного компьютера. -
Запустить драйвер
dbc_tcp
с данным файломnodetab
. -
Открыть соединение из утилиты inl к узлу RTCP.
-
Разорвать сеть на 30 секунд.
-
Восстановить работу сети.
-
Подать любой запрос из утилиты inl. Должен вернуться код завершения 1069 «Неверный номер канала».
-
Повторить действия для узла RTCPS.
Проверка тайм-аута соединения
-
На серверном компьютере запустить ядро СУБД ЛИНТЕР и сетевой драйвер сервера.
-
На клиентском компьютере создать файл
nodetab
:RTCP TCPIP < alien host > 1060 1 20 10 RTCPS TCPIPS < alien host > 1060 1 20 10
где
< alien host >
– сетевой адрес реального компьютера, расположенного за межсетевым экраном. Межсетевой экран должен быть настроен так, чтобы не пропускает пакеты от компьютера с адресом< alien host >
к клиентскому компьютеру. -
Запустить драйвер
dbc_tcp
с даннымnodetab
. -
Осуществить попытку соединения к узлу RTCP с помощью утилиты inl.
-
Не более чем через 10(+4) сек. утилита inl должна выдать сообщение о невозможности определения версии БД. По истечении не более 10(+4) сек. – вернуть код завершения 4058 «Превышен интервал ожидания установления соединения» или 4006 «Ошибка создания сетевого соединения».
-
Повторить проверку для узла RTCPS.
Проверка соединения через локальный протокол
-
На серверном компьютере установить переменную окружения LINTER_MBX=1254.
-
Запустить ядро СУБД ЛИНТЕР.
-
Сбросить переменную окружения LINTER_MBX.
-
Проверить подключение к локальному ядру. Попытка открытия соединения к локальному ядру должна закончиться неудачно.
-
Создать файл
nodetab
:N1 LOCAL 1254 N2 LOCALS 1254
-
На серверном компьютере запустить сетевой драйвер клиента.
-
Осуществить с помощью утилиты inl соединение к узлам N1, N2.
-
Соединение должно быть успешно установлено c узлами N1 и N2.
-
Выполнить запрос (при успешном соединении):
select count(*) from auto;
На терминал должен быть выведен результат выполнения запроса.
Проверка установки сервера по умолчанию
-
На серверном компьютере запустить ядро СУБД ЛИНТЕР и сетевой драйвер сервер.
-
На клиентском компьютере создать файл
nodetab
:N1 TCPIP 12.12.12.12 N2 remote host
где
< remote host >
должно быть заменено на реальный TCP/IP адрес серверного компьютера. -
Запустить драйвер
dbc_tcp
с ключом-S
и даннымnodetab
:>dbc_tcp -N nodetab -S N2
При запуске на терминал должно быть выведено сообщение о сервере по умолчанию N2.
-
Осуществить соединение к серверу по умолчанию:
>inl -u SYSTEM/MANAGER8
Соединение должно быть успешно установлено.
-
Выполнить запрос:
select count(*) from auto;*
На терминал должен быть выведен результат выполнения запроса.
-
Повторить шаги 1-5 заново, запустив драйвер
dbc_tcp
с ключом-DEFAULT
вместо-S
.
Проверка запуска с идентификатором межпроцессного обмена, отличным от идентификатора по умолчанию
-
На серверном компьютере запустить ядро СУБД ЛИНТЕР и сетевой драйвер сервера.
-
На клиентском компьютере запустить драйвер клиента
dbc_tcp
с ключом-M
:>dbc_tcp -M 1255
-
Установить переменную окружения NET_MBX=1255.
-
Произвести попытку соединения с узлом RTCP. Соединение должно быть успешно установлено.
-
Выполнить запрос:
select count(*) from auto;
На терминал должен быть выведен результат запроса.