Режимы работы сервера |
Существует три режима работы сервера ИРБИС64: |
Обычный, |
прием запроса в основном потоке сервера. После запуска процесса обработки серверу необходимо получить информацию о том, что результат готов и забрать этот результат.
Многопотокового чтения-записи, |
прием запроса в отдельном потоке. Многопотоковый режим задействует те же механизмы обмена сообщениями с процессами обработки server_64.exe, что и обычный режим.
Многопроцессорного чтения-записи, |
прием запроса в отдельном процессе. Многопроцессорный режим задействует дополнительное сообщение от server_64.exe к серверу, которое сигнализирует серверу об окончании чтения запроса от клиента и передает информацию серверу в файле для обновления текущих списков зарегистрированных клиентов и процессов. Факт передачи ответа клиенту и окончания обработки передается серверу в многопроцессорном режиме точно также.
Для того что бы сервер узнал о том что результат готов |
обычно хватает Windows-сообщения. Однако на очень нагруженных системах, эти сообщения могут быть не доставлены операционной системой, и сервер не узнает о том, что ответ для клиента готов.
Если у Вас возникает такая проблема – стоит обратиться к варианту TCP/IP запроса по внутреннему порту сервера. |
Доставить сам ответ можно двумя способами. |
•Либо через файл на диске (медленно, но надежно),
•либо через системную память (быстро, но есть ограничение на размер этой памяти, которое задается в irbis_server.ini).
Воспользоваться режимом «отладка» возможно только в случае обмена информацией через файлы – в этом случае они не удаляются и остаются в директории workdir.
Внимание: |
Следите за размером количеством файлов в директории workdir при отладке – большое количество таких файлов приведет к серьезному замедлению работы |
Режимы работы сервера |
Ниже в таблице сведены режимы работы, способы сообщения серверу, что ответ для клиента готов к отправке и способы передачи от процесса обработки серверу результата работы. Указано, какие значения, каким параметрам необходимо присвоить.
Обычный |
Многопотоковый |
Многопроцессорный |
|
DUPLICATE_SOCKETS=0 THREADS_AVAILABLE=0
|
DUPLICATE_SOCKETS=0 THREADS_AVAILABLE=1 |
DUPLICATE_SOCKETS=1 THREADS_AVAILABLE – не играет роли |
|
Способы обмена информацией сервера с процессами обработки |
|||
Параметры в irbis_server.ini для …обычного и многопотокового режима |
…многопроцессорного режима |
||
Через файл MAPING_WORK_FILES=0
Через мэпированный файл (через системную память)
MAPING_WORK_FILES=1 MappingFileSize=1 (Мб) |
Через файл DUP_MAPING_WORK_FILES=0
Через мэпированный файл
DUP_MAPING_WORK_FILES=1 Dup_MappingFileSize=100 (Кб) |
||
Виды сообщений не зависят от режимов работы сервера и способов обмена информацией
Виды сообщений от процесса обработки к серверу, используемых как сигнал о начале обмена информацией (ответ клиенту готов) |
|||
Вид сообщения |
Параметры в irbis_server.ini |
||
Windows сообщение |
LISTEN_RESPONSE=0 RegisterWindowMessage=0 |
||
Зарегистрированное в WINDOWS сообщение WM_CLIENT_PROCESS_Hook:=RegisterWindowMessage(CLASS_NAME) |
LISTEN_RESPONSE=0 RegisterWindowMessage=1 |
||
TCP/IP запрос по внутреннему порту сервера |
LISTEN_RESPONSE=1 IP_PORT_LOCAL=7778 |
См. также:
Параллельных процессов обработки доступа к базам данных оптимизация
Сетевого чтения-записи параллельная обработка
Многопроцессорное сетевое-чтение записи - режим Сервера
Пользовательский интерфейс сервера ИРБИС64