ГНЦ ИФВЭ
ОУ У-70
Система Управления комплекса У-70  

Распределенная База Данных реального времени ССУДА

Особенности работы в распределенной среде

В сети удаленный доступ к данным таблиц поддерживают следующие постоянно загруженные задачи:

DDBD_mem на ЭВМ-сервере ssuda.oku.ihep.su;
ws_rwr на каждой ЭВМ, где есть файлы БД;
fe_rwr на каждом FE компьютере, к которому подключены ЕС с копиями таблиц;
#RWR на ЕС, где есть копии таблиц.

Объем данных в функциях dtrdbl и dtwdbl не может превышать 8500 байт !!!!

coord[6] может принимать следующие значения:

0
- локальная таблица;
1
- материнская копия глобальной;
2
- копия child;
3
- копия в ЕС.

При работе в сети открывают только глобальные таблицы посредством функции

short int opnglb( char *rel_n, char *use_n, short int base_num )

Эта функция открывает таблицу с именем rel_n для доступа к данным. Открывающий имеет привилегии в соответствии с именем use_n. Допускается пустое имя, задаваемое в виде "". Через base_num возвращается номер БД, где расположена эта таблица. Открываются и все копии таблицы.

Функция возвращает:

>= 0 - идентификатор таблицы при удачном завершении;
0x8000 - нет таблицы, содержащей описания пользователей;
0x8010 - уже открыто максимальное число таблиц;
0x8020 - нет пользователя с указанным именем;
0x8030 - ошибка в сети на функцию sendto;
0x8031 - ошибка в сети на функцию select;
0x8032 - ошибка в сети на функцию чтения;
0x8033 - time-out на чтение из сети;
0x8034 - ошибка в сети на функцию socket;
0x8035 - ошибка в сети на функцию bind;
0x8036 - ошибка в сети на функцию gethostbyname;
0x8037 - на функцию sendto получен не ответ;
0x8110 - time-out на MIL-1553;
0xc001 - WS_RWR не может открыть файл БД с глобальной таблицей;
0xc000 - WS_RWR открыла максимальное число таблиц;
0xc000 - нет такой глобальной таблицы в описаниях DDBD;
0xc000 - нет такой таблицы в файле БД.

Остальные функции библиотеки работают в соответствии с их описаниями. Однако дополнительно могут быть получены следующие коды ошибок:

0x8060 - неправильный номер БД;
0x8000 - из сети получен неправильный ответ;
0x8010 - в ЕС нет задачи #RWR;
0xc000 - в ЕС нет команды чтения блока (#RWR вылетела).

Автор © Воеводин В.П.