НАЧАЛО >> Оглавление >> TCP/IP сервер ИРБИС 64/128 >> Конфигурирование и настройка сервера >> Несколько замечаний для администраторов📄 Скачать в DOCX
Сервер работает по внутреннему протоколу ИРБИС 64 поверх TCP/IP и обслуживает базы данных формата ИРБИС 64 через irbis64.dll.
Ядро сервера irbis_server.exe взаимодействует с набором процессов обработки server_64.exe. При росте нагрузки число процессов обработки увеличивается до заданного предела.
Процессы обработки независимы друг от друга. Сервер связывает их с ядром через управляющие Windows-сообщения и назначает каждому процессу уникальный сигнал управления. По этому сигналу процесс начинает обработку данных запроса. Для контроля занятости каждому процессу назначается состояние активный или пассивный.
Запрос передаётся процессу обработки через файл с уникальным именем:
!IDClient_RequestNumber
IDClient - идентификатор клиента, выданный ядром при регистрации. RequestNumber - порядковый номер запроса. Например, файл !12345_2 соответствует клиенту 12345 и запросу 2.
Ответ процесса обработки передаётся ядру через файл с тем же именем без начального знака !:
IDClient_RequestNumber
После получения ответа сервер отправляет его клиенту и закрывает сетевое соединение. В режиме отладки файлы запросов и ответов доступны в рабочем каталоге сервера.
Серверный журнал фиксирует запросы клиентов строкой описателя:
дата/время/IP/IDКлиента/ДлинаЗапроса/КодКоманды/АРМ/НомерЗапроса
Клиент должен работать в последовательном режиме: пока не получен ответ на запрос N, клиент не должен отправлять запрос N+1.
Ядро сервера выполняет сетевой обмен с клиентами, регистрацию клиентов, администрирование баз данных, управление процессами обработки и ведение журнала.
Процессы обработки могут быть долгоживущими или однократными. Долгоживущий процесс последовательно обрабатывает несколько запросов от ядра сервера; количество регулируется. Однократный процесс завершается после обработки запроса.
При старте однократного процесса ядро передаёт один параметр командной строки: имя файла запроса. При старте долгоживущего процесса передаются два параметра: имя файла запроса и значение уникального сигнала управления.
Параметр MAX_PROCESS_COUNT задаёт максимально возможное число процессов обработки. При превышении сервер возвращает ошибку SERVER_OVERLOAD. Параметр MAX_SERVERS задаёт максимально возможное число долгоживущих процессов обработки; при превышении запускаются только однократные процессы.
Запросы клиентов делятся на специальные, разовые, пакетные и запросы на останов. Специальные запросы обрабатываются ядром без участия процессов обработки: регистрация, передача контекста, разрегистрация и подтверждение NO OPERATION. Печать, статистика и глобальная корректировка относятся к пакетным запросам.
Сервер включает модуль администратора баз данных, который работает с базами в режиме файлового доступа. Управление именами и паролями клиентов выполняется через файл меню и табличный интерфейс описания клиентов.
Для параллельной обработки сетевого чтения-записи используются параметры:
| Параметр | Назначение |
|---|---|
THREADS_AVAILABLE=1 |
Включает многопотоковый режим. |
THREADS_LOCKING=0 |
Блокирует параллельные потоки, кроме текущего, на время чтения-записи. |
MIN_THREADS_COUNT=1 |
Минимальное количество потоков в очереди. |
MAX_THREADS_COUNT=10 |
Максимальное количество потоков; при превышении сервер переходит к последовательному чтению-записи. |
Многопотоковый режим имеет смысл при медленной сети или работе через глобальную сеть. В локальной сети он обычно не даёт выигрыша по скорости, но может повысить устойчивость при зависании системных функций чтения-записи.