7.7Протокол работы сервера ИРБИС64
Протокол ИРБИС имеет строковый формат, первые 10 строк – заголовок, далее данные, после данных может стоять строка – признак начала бинарных данных, за которыми блок бинарной информации, завершающийся признаком – строкой..
7.7.1ОБЩИЕ КОНСТАНТЫ
АРМ ы
АДМИНИСТРАТОР – ‘A‘
КАТАЛОГИЗАТОР – ‘C’
КОМПЛЕКТАТОР – ‘M’
ЧИТАТЕЛЬ – ‘R’
КНИГОВЫДАЧА – ‘B’
7.7.2ОПИСАНИЕ СТРУКТУРЫ ПАКЕТА ДАННЫХ
Пакет - это строка переменной длины.
Пакет включает фиксированный (1,2) и переменный (3) наборы строк:
-
строка с общей длиной запроса
-
10 строк заголовка
-
данные (возможно несколько строк)
Строки разделяются #10,
7.7.2.1Входящий пакет (для сервера):
ДЛИНА ЗАПРОСА В БАЙТАХ (В ТАБЛИЦАХ НЕ ПОКАЗАН!!!)
-
КОД КОММАНДЫ
-
ТИП ПОЛЬЗОВАТЕЛЯ (ARM)
-
КОД КОММАНДЫ
-
ИДЕНТИФИКАТОР ПОЛЬЗОВАТЕЛЯ (GUID)
-
ПОРЯДКОВЫЙ НОМЕР ЗАПРОСА
-
ПАРОЛЬ ПОЛЬЗОВАТЕЛЯ
-
ИМЯ ПОЛЬЗОВАТЕЛЯ
-
РЕЗЕРВ
-
РЕЗЕРВ
-
РЕЗЕРВ
ДАННЫЕ (возможно несколько строк)
7.7.2.2Исходящий пакет (для сервера): -
КОД КОММАНДЫ
-
ИДЕНТИФИКАТОР ПОЛЬЗОВАТЕЛЯ (GUID)
-
ПОРЯДКОВЫЙ НОМЕР ЗАПРОСА
-
РЕЗЕРВ
-
РЕЗЕРВ
-
РЕЗЕРВ
-
РЕЗЕРВ
-
РЕЗЕРВ
-
РЕЗЕРВ
-
РЕЗЕРВ
ДАННЫЕ (возможно несколько строк)
7.7.2.3ПОДРОБНОЕ ОПИСАНИЕ ВОЗВРАТОВ
Все данные посылаются и получаются в символьном виде в виде буфера заканчивающегося #0.
Строки в буфере разделяются 1-м #10 или 2-мя символами - #10#13.
Специальный символ разделитель - '#' = #35
7.7.2.3.1Флаги статусов записи:
{BIT_LOG_DEL = логически удаленная запись - 1}
{BIT_PHYS_DEL = физически удаленная запись - 2 }
{BIT_ABSENT = несуществующая запись - 4}
{BIT_NOTACT_REC = неактуализированная запись - 8} {BIT_LAST_REC = последний экземпляр записи - 32}
{BIT_LOCK_REC = заблокированная запись - 64}
7.7.2.3.2Коды возврата
Код
|
Мнемоническое описание
|
Описание
|
0
|
ZERO
|
Нормальное завершение
|
-1111
|
SERVER_EXECUTE_ERROR
|
|
-2222
|
WRONG_PROTOCOL
|
|
-3333
|
CLIENT_NOT_IN_LIST
|
незарегистрированный клиент
|
-3334
|
CLIENT_NOT_IN_USE
|
незарегистрированный клиент не сделал irbis-reg
|
-3335
|
CLIENT_IDENTIFIER_WRONG
|
неправильный уникальный идентификатор
|
-3336
|
CLIENT_NOT_ALLOWED
|
нет доступа к командам АРМа
|
-3337
|
CLIENT_ALREADY_EXISTS
|
клиент уже зарегистрирован
|
-4444
|
WRONG_PASSWORD
|
неверный пароль
|
-5555
|
FILE_NOT_EXISTS
|
Файл не существует
|
-6666
|
SERVER_OVERLOAD
|
сервер перегружен достигнуто максимальное число потоков обработки
|
-7777
|
PROCESS_ERROR
|
не удалось запустить/прервать поток администратора
|
-100
|
READ_WRONG_MFN
|
-1 - заданный MFN вне пределов БД
|
-600
|
REC_DELETE
|
1 - запись логически удалена
|
-601
|
REC_PHYS_DELETE
|
2 - запись физически удалена
|
-602
|
ERR_RECLOCKED
|
запись заблокирована на ввод
|
-603
|
REC_DELETE
|
1 - запись логически удалена
|
-607
|
AUTOIN_ERROR
|
ошибка autoin.gbl
|
-300
|
ERR_DBEWLOCK
|
монопольная блокировка БД
|
-400
|
ERR_FILEMASTER
|
ошибка при открытии файла mst или xrf
|
-401
|
ERR_FILEINVERT
|
ошибка при открытии trm файлов
|
-402
|
ERR_WRITE
|
ошибка при записи
|
-403
|
ERR_ACTUAL
|
ошибка при актуализации
|
-202
|
TERM_NOT_EXISTS
|
|
-203
|
TERM_LAST_IN_LIST
|
|
-204
|
TERM_FIRST_IN_LIST
|
|
Далее везде в таблицах протокола опущена первая строка запроса – длина запроса в байтах
Достарыңызбен бөлісу: |