Система автоматизации библиотек


Пользовательский интерфейс сервера ИРБИС64



бет4/18
Дата09.06.2016
өлшемі6.79 Mb.
#124471
1   2   3   4   5   6   7   8   9   ...   18

7.4Пользовательский интерфейс сервера ИРБИС64

После установки и запуска сервера irbis_server.exe в правой области панели задач появляется пиктограмма, где под правой кнопкой мыши доступно следующее меню




Рисунок 5 Список диспетчерских режимов сервера БД ИРБИС

7.4.1Список клиентов для доступа к серверу


Список клиентов для доступа к серверу – служит для организации доступа клиентов по ИМЕНИ и ПАРОЛЮ к серверу. Каждому клиенту (регистрируемому сервером по имени и паролю) соответствует набор ini файлов – для каждого АРМа свой ini файл. Если в строке для клиента не прописано имени ini файла данный АРМ не получает доступа к серверу. По умолчанию предлагается набор общих ini файлов. Все данные сохраняются в файле DATAI\client_m.mnu.


Рисунок 6 Управление списком клиентов

7.4.2Список зарегистрированных клиентов


Список зарегистрированных клиентов - таблица для описания параметров, работающих с сервером клиентов. На зеленом фоне справа вверху – общее число запросов к серверу. Слева вверху – индикатор, который показывает число процессов обработки, задействованных сервером на текущий момент. Под правой кнопкой мыши – меню, пользуясь которым администратор имеет возможность удалить из списка любого клиента. При этом клиент при очередном запросе получит код ошибки – клиент не зарегистрирован. (Работать не сможет). Параметр в irbis_server.ini CLIENT_TIME_LIVE (не равный 0) задает периодичность (в минутах) проверки каждого клиента на время последнего запроса, и если оно превышает заданный этим параметром уровень, клиент автоматически удаляется из очереди.



Рисунок 7 Управление списком зарегистрированных клиентов

7.4.3Список запущенных процессов обработки


Список запущенных процессов обработки. При удалении из списка процесса обработки соединение с клиентом закрывается. Правильный возврат не гарантируется.



Рисунок 8 Управление списком запущенных процессов

7.4.4Список запущенных потоков сетевого чтения-записи


Список запущенных потоков сетевого чтения-записи. При зависании потока администратор должен включить режим мониторинга процессов и потоков параметром PROCESS_THREADS_MONITOR=1 в irbis_server.ini (после чего перезапустить сервер). Прерывание потоков вручную отменено! Вместо этого следует обновить список.


Рисунок 9 Управление списком запущенных потоков

7.5Конфигурирование и настройка сервера

7.5.1Режимы работы сервера


Существует три режима работы сервера ИРБИС64:

  • Обычный, прием запроса в основном потоке сервера

  • Многопотокового чтения-записи, прием запроса в отдельном потоке

  • Многопроцессорного чтения-записи, прием запроса в отдельном процессе

После запуска процесса обработки серверу необходимо получить информацию о том, что результат готов и забрать этот результат.

Многопотоковый режим задействует те же механизмы обмена сообщениями с процессами обработки server_64.exe, что и обычный режим.

Многопроцессорный режим задействует дополнительное сообщение от server_64.exe к серверу, которое сигнализирует серверу об окончании чтения запроса от клиента и передает информацию серверу в файле для обновления текущих списков зарегистрированных клиентов и процессов. Факт передачи ответа клиенту и окончания обработки передается серверу в многопроцессорном режиме точно также.

Для того чтобы сервер узнал о том что результат готов обычно хватает Windows-сообщения. Однако на очень нагруженных системах, эти сообщения могут быть не доставлены операционной системой, и сервер не узнает о том, что ответ для клиента готов. Если у Вас возникает такая проблема – стоит обратиться к варианту TCP/IP запроса по внутреннему порту сервера.

Доставить сам ответ можно двумя способами. Либо через файл на диске (медленно, но надежно), либо через системную память (быстро, но есть ограничение на размер этой памяти, которое задается в irbis_server.ini). Воспользоваться режимом «отладка» возможно только в случае обмена информацией через файлы – в этом случае они не удаляются и остаются в директории 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






7.5.2Описание параметров INI файла сервера ИРБИС 64



irbis_server.ini

[MAIN]

7.5.2.1Общие параметры


SYSPATH=Путь к системным файлам ini.

DATAPATH=Путь к системным меню и параметрическим файлам БД.

CLIENTLIST=имя файла со списком клиентов с паролями для доступа к серверу.

CLIENT_TIME_LIVE=Время жизни клиента без подтверждения (в мин.)

По умочанию 0 – режим отключен.



PROCESS_TIME_LIVE=Максимальное время обработки запроса (в мин.) По умочанию 0 – режим отключен.

PROCESS_THREADS_MONITOR=Время мониторинга в сек. процессов и потоков на соответствие друг другу. Если 0 – режим отключен. 10 сек по умолчанию.

Особенно важно, что в многопотоковом режиме при системных ошибках в процессе обработки server_64.exe поток теряет указатель на процесс обработки и находится в постоянном ожидании его завершения. Во избежание этого обязательно требуется включить таймер мониторинга процессов и потоков параметром (в сек.) Например, PROCESS_THREADS_MONITOR=100



ACTABPATH=Путь на таблицу isisacw.

IP_ADDRESS=IP адрес сервера используется только для показа в таблице описателей.

IP_PORT=IP порт сервера.

MaxLogFileSize=1000000 - Размер log-файла, byte

ENCRYPT_PASSWORDS=1 – Шифровать профили клиентов

SUPPRESS_EXEPTIONS=1 - Не выводить windows-сообщения о непредвиденных ошибках в процессах обработки server_64.exe. Этот параметр рекомендуется использовать, если во время эксплуатации сервера выводятся сообщения об ошибках в server_64.exe.

RECOGNIZE_CLIENT_ADDRESS=1 - Разрешать (определять) адрес машины клиента при регистрации

7.5.2.2Параметры межпроцессорного взаимодействия


WORKDIR=Директория для сохранения временных файлов, используемых для межпроцессорного взаимодействия сервера и процессов обработки.

Если на сервере установить флаг ОТЛАДКА временные файлы не уничтожаются (следите за объемом физической памяти на диске и количеством файлов в директории).



MAPING_WORK_FILES=1 - обмен между процессами обработки и ядром сервера - через системную память (1) или через временные файлы (0) в рабочей директории workdir Если системной памяти не хватает, происходит обмен через файл. При включении этого режима, необходимо также включить проверку клиентов на подтверждение - CLIENT_TIME_LIVE, чтобы за ними не оставалась выделенная память.

MappingFileSize=1 - размер системной памяти выделяемой клиенту, Mb.

SERVICE_NAME=irbis_server.exe – (Не используется) Имя запускаемого сервисом WINDOWS сервера ИРБИС64. Это либо irbis_server.exe, либо server_64_console.exe.

RegisterWindowMessage=1 Сигнал обмена сообщениями между сервером и процессами обработки регистрируется в системе WINDOWS и получает уникальный идентификатор.

LISTEN_RESPONSE=1

IP_PORT_LOCAL=7778

Cигнал окончания процесса обработки посылается через TCP на порт 7778, а не как сообщение windows. В этом случае RegisterWindowMessage игнорируется.



Prefix_file_request=REQUEST_ Префикс к файлу обмена - запрос

Prefix_file_response=RESPONSE_ Префикс к файлу обмена - ответ

7.5.2.3Оптимизация параллельных процессов обработки доступа к базам данных


KEEP_PROCESS_ALIVE=1 Флаг разрешает серверу использовать процесс обработки многократно.

MAX_SERVERS=Максимальное число процессов обработки, которые сервер использует многократно (только если KEEP_PROCESS_ALIVE = 1).

MAX_PROCESS_COUNT=Максимально возможное число процессов обработки, если превышено - возвращается ошибка SERVER_OVERLOAD. По умолчанию = 20.

MAX_PROCESS_REQUESTS=Максимально возможное число запросов к долгоживущему процессу обработки, после чего процесс автоматически прерывается. По умолчанию = 100.

7.5.2.4Параллельная обработка сетевого чтения-записи


Сервер может работать в режиме параллельной обработки чтения-записи запросов клиентов в многопотоковом режиме. Режим управляется следующими параметрами:

THREADS_AVAILABLE=1 – включение режима.

При включении многопотокового режима обязательно включить параметр мониторинга процессов и запросов



PROCESS_THREADS_MONITOR=1

THREADS_LOCKING=0 – блокировка всех параллельных потоков, кроме текущего, на время чтения-записи.

MIN_THREADS_COUNT=1 – минимальное количество потоков в очереди.

MAX_THREADS_COUNT=10 – максимально возможное количество потоков; если превышено - сервер переходит в режим последовательного чтения-записи.

Z39_50_SERVER=0 – (Не используется) Сигнал серверу Ζ39-50 окончания обработки его запроса.

BlockingTimeout=0 (Не используется) Время блокировки сетевого чтения-записи. Если превышено, сервер возвращает ошибку.

7.5.2.5Опции кэширования при форматировании


FORMAT_CASHABLE=1 – Кэшировать формат, прочитанный из файла

FORMAT_DECOMPILED – (Не используется) Произвести пред. компиляцию формата путем замены unifor(‘6… на формат.

7.5.2.6Установка пользовательских шрифтов


FontName= Если задан, устанавливается во всех окнах и меню

FontCharSet=0 Если задан, устанавливается как свойство FontName

7.5.2.7Многопроцессорный режим


USE_MULTY_PROCESSOR=1 Потоки сетевого чтения-записи и потоки процессов обработки распараллеливаются по процессорам оптимальным образом.

7.5.2.8Работа с приоритетами потоков и процессов


(Не используется)

PROCESS_PRIORITY если =1 ПОВЫСИТЬ ПРИОРИТЕТ ПРОЦЕССА (HIGH_PRIORITY_CLASS)

THREAD_PRIORITY если =1 ПОВЫСИТЬ ОТНОСИТЕЛЬНЫЙ ПРИОРИТЕТ ПОТОКА (THREAD_PRIORITY_HIGHEST)

7.5.2.9Сервер в режиме многопроцессорного сетевого-чтения записи


Данный режим исключает использование потоков сетевого чтения-записи и режим отладки. Параллельная обработка с сетевым чтением-записью в процессе обработки повышает надежность сервера и отказоустойчивость. Кроме того, сокращается время обработки за счет уменьшения времени отклика сервера на запрос.

В данном режиме сервер выполняет только прослушивание порта на наличие запроса. Вся обработка, в том числе и часть мониторинга процессов, передается процесам обработки. При этом размер системной памяти, требующийся процессу, определяется общим списком клиентов и списком зарегистрированных клиентов, то есть является небольшим по объему.



DUPLICATE_SOCKETS=1 – включение многопроцессорного режима (когда процесс обработки выполняет сетевое чтение-запись)

DUP_MAPING_WORK_FILES=1 - обмен между процессами обработки и ядром сервера - через системную память (1) или через временные файлы в рабочей директории workdir (0)

Dup_MappingFileSize=100 - размер системной памяти, выделяемой процессу, Kb

Dup_ProcessCountPull=2 - число процессов обработки, стартуемых сервером при запуске

7.5.2.10Параметры перенаправления запроса на другой сервер ИРБИС64


Включение режима происходит, когда в имени базы данных в меню типа dbnam.mnu включаются признак % и адрес перенаправления запроса. Например:

IBIS%SERVER1%

Тестовая библиотечная БД
Адрес перенаправления запроса сервер ищет в irbis_server.ini в секции:
[REDIRECT]

SERVER1=192.168.4.204:7777


Внимание!

Перенаправление не поддерживается функциями форматирования!

Поэтому в случае связных (через форматирование) баз данных система будет работать неправильно!
Перенаправление не требует регистрации на другом сервере, но требует разрешения обработки запроса в соответствующем параметре irbis_server.ini:
[MAIN]

CHECK_REDIRECT=1 (По умолчанию 0)

7.5.2.11Параметры, унаследованные от АРМа “Каталогизатор”


PftOpt=pftw.opt оптимизация форматирования.

Relay_RecTime=5 ожидание эксклюзива на запись.

AutoInFile=autoin.gbl файл автоввода.

Dbnflc=dbnflc файл проверки на дублетность.

DeflexKW=0 применять отсечку при актуализации?

STTMNU=stt.mnu меню статистики.

7.5.2.12Время обработки запроса (Pentium 4, 1Gb)


T(сетевое чтение) 15мс

T(старт процесса обработки) 1-5мс

T(обработка форматирование одной записи в формате ibisw) 300-600 мс

T(сетевая запись) 15мс

Кэширование форматов сокращает время обработки до 50-100 мс
Параллельное чтение-запись сокращает время при больших нагрузках сервера.

Параллельная обработка с сетевым чтением-записью в процессе обработки повышает надежность сервера и отказоустойчивость. Кроме того, сокращается время обработки за счет уменьшения времени отклика сервера на запрос.


7.5.3Поддержка клиентских ini-файлов


Работа клиентов ИРБИС 64 управляется 2-мя ini файлами - клиентским и серверным.

Имя серверного ini определяется при регистрации клиента и может быть изменено в режиме "СПИСОК КЛИЕНТОВ ДЛЯ ДОСТУПА К СЕРВЕРУ" на сервере ИРБИС 64.

Для входа в систему клиентам предлагается:

тестовое имя:

MASTER

пароль:


MASTERKEY

Серверные клиентские ini-файлы могут иметь вложенную структуру. Подключение вложенного ini-файла осуществляется при помощи задания специальной секции вида

[@имя_вложенного_файла]

Содержимое подключенного таким образом ini-файла сервером не изменяется.


7.5.4Несколько замечаний для администраторов


Сервер работает по внутреннему протоколу ИРБИС64 над TCP/IP.

Сервер работает с базами данных исключительно формата ИРБИС64. Для доступа используется irbis64.dll.

Сервер работает в режиме межпроцессорного взаимодействия набора процессов обработки server_64.exe с ядром сервера irbis_server.exe. При возрастающей нагрузке число процессов обработки увеличивается до определенного регулируемого предела.

Процессы обработки независимы друг от друга, связаны с сервером через условный уникальный сигнал управления (WINDOWS MESSAGE). Каждому процессу обработки ядро сервера присваивает уникальное значение сигнала управления, по которому процесс начинает обрабатывать данные по запросу. Каждому процессу обработки ядро присваивает флаг – активный/пассивный, по которому ядро узнает - занят ли процесс.

Запрос сервера передается процессу через файл с уникальным именем filename = !IDClient_RequestNumber, где IDClient – идентификатор клиента, выданный ядром при регистрации. RequestNumber – порядковый номер запроса. Например !12345_2. IDClient=12345, RequestNumber=2

Ответ процесса обработки передается ядру через файл с уникальным именем filename = IDClient_RequestNumber – то же что и файл запроса только без знака ‘!' по универсальному сигналу управления с уникальными параметрами WINDOWS_MESSAGE LPARAM,WPARAM. Универсальный сигнал управления процессами (не путать с уникальным сигналом управления данным процессом) есть WINDOWS MESSAGE, значение которого по соглашению с WINDOWS лежит выше WM_USER. По значению параметров ядро сервера распознает идентификатор процесса, пославшего ответ, и посылает по сети ответ соответствующему клиенту. Сразу после пересылки ответа сетевое соединение закрывается сервером.

Файлы запросов и ответов доступны в режиме отладки для просмотра в рабочей директории сервера

Сервер ведет лог-файл в котором отражаются запросы клиентов в виде строки описателя –

дата/время/IP/IDКлиента/Длиназапроса/Код команды/АРМ/Номер запроса

Клиент обязан работать в последовательном режиме! То есть не получив ответа на N запрос, клиент обязуется не посылать N+1 запрос

Ядро сервера осуществляет сетевой обмен информацией с клиентами, управление регистрацией клиентов, управление базами данных (администрирование), управление процессами обработки, ведением журнала.

Процессы обработки могут быть двух типов – долгоживущими и однократными. Долгоживущие процессы могут обработать последовательно N запросов от ядра сервера. N регулируется. По завершению обработки запроса от ядра сервера долгоживущий процесс дает сигнал, сообщающий ядру, что его можно использовать снова. Однократные процессы уничтожаются по завершению обработки. Все процессы обработки можно объявить однократными.

При старте однократного процесса ядро использует один параметр командной строки – это имя файла запроса.

При старте долгоживущего процесса ядро использует два параметра командной строки – второй параметр это значение уникального сигнала управления, присвоенного ядром данному процессу

Параметр MAX_PROCESS_COUNT - максимально возможное число процессов обработки; если превышено - возвращается ошибка SERVER_OVERLOAD. Есть параметр MAX_SERVERS - максимально возможное число долгоживущих процессов обработки; если превышено запускаются только однократные.

Запросы от клиентов к ядру делятся на четыре вида – специальные, разовые, пакетные и запрос на останов. Получив пакетный запрос, ядро сервера порождает только однократный процесс. Получив запрос на останов, ядро посылает сигнал завершения заданному процессу обработки. Если процесс обработки не порождает в ответ сигнал завершения – ядро сервера насильно завершает процесс обработки и закрывает соединение с клиентом. В этом случае клиент не получает результата обработки. Если процесс обработки порождает сигнал завершения по требованию ядра, клиент получает ответ в том виде, в котором процесс обработки его предоставил, не давая гарантию, что запрос клиента выполнен полностью. Такой режим важен при выполнении пакетных заданий на больших базах.

Специальные запросы обрабатывает ядро сервера без участия процессов обработки. Это регистрация, передача контекста (чтение файлов), раз-регистрация и сигнал подтверждения (NO OPERATION)

Печать, статистика и глобальная корректировка – пакетные запросы.

Сервер включает в виде отдельного модуля Администратор баз данных, который работает в режиме файлового доступа к базам данных.

Управление паролями и именами клиентов сервер осуществляет через файл меню и интерфейс для описания клиентов в виде таблицы.

Сервер может работать в режиме параллельной обработки чтения-записи запросов клиентов в многопотоковом режиме. Режим управляется следующими параметрами

THREADS_AVAILABLE=1 – включение режима.

THREADS_LOCKING=0 – блокировка всех параллельных

потоков, кроме текущего, на время чтения-записи.

MIN_THREADS_COUNT=1 – минимальное количество потоков

в очереди. Если превышено – поток после завершения операции записи завершается.

MAX_THREADS_COUNT=10 – максимально возможное количество потоков, если превышено - сервер переходит в режим последовательного чтения-записи.

Многопотоковый режим следует использовать при медленной работе сети. То есть при работе в глобальной сети, когда доступ затруднен. В локальной сети данный режим выигрыша не даст, за исключением большей надежности при операциях чтения-записи. Если будет зависание системных функций чтения-записи, беспотоковый сервер не сможет продолжать обработку запросов.



7.5.5Блок-схема работы сервера ИРБИС64


Режим последовательного сетевого чтения-записи на сервере и параллельной обработки запроса в процессах server_64.exe

Режим параллельного сетевого чтения-записи на сервере и параллельной обработки запроса при многократном использованиии процесса обработки

Режим многопроцессорного сетевого-чтения записи в процессах обработки server_64.exe



Рисунок 10 Блок-схема работы сервера ИРБИС64


Достарыңызбен бөлісу:
1   2   3   4   5   6   7   8   9   ...   18




©dereksiz.org 2024
әкімшілігінің қараңыз

    Басты бет