Часть 14. МОДУЛЬ КОММУНИКАЦИЙ
ВВЕДЕНИЕ В МОДУЛЬ КОММУНИКАЦИИ
Назначение
Модуль коммуникаций обеспечивает возможность получения, обработки и создания сообщений или их частей. Он позволяет с помощью системы управления сообщениями связываться с коммуникационными устройствами.
Характеристика уровней
Уровень 1 коммуникаций обеспечивает ограниченные возможности для статьи описания коммуникации. В разделе процедур уровень 1 обеспечивает ограниченные возможности операторов RECEIVE (ПОЛУЧИТЬ) и SEND (ПОСЛАТЬ) и полные возможности
оператора ACCEPT MESSAGE COUNT (ПРИНЯТЬ ЧИСЛО СООБЩЕНИЙ).
Уровень 2 коммуникаций обеспечивает полные возможности для статьи описания коммуникации. В разделе процедур уровень 2 обеспечивает полные возможности операторов ACCEPT MESSAGE COUNT (ПРИНЯТЬ ЧИСЛО СООБЩЕНИЙ), DISABLE (ЗАПРЕТИТЬ), ENABLE (РАЗРЕШИТЬ), PURGE (ОЧИСТИТЬ), RECEIVE (ПОЛУЧИТЬ), SEND (ПОСЛАТЬ).
РАЗДЕЛ ДАННЫХ В МОДУЛЕ КОММУНИКАЦИЙ
Секция коммуникаций
Секция коммуникаций находится в разделе данных исходной программы. Секция коммуникаций описывает элементы данных исходной программы, которые будут использованы для интерфейса между системой управления сообщениями и программой. Эта область интерфейса определяется статьей описания коммуникации. За статьей описания коммуникации может следовать одна или несколько статей описания записей или не следовать ни одной.
Общий формат секции коммуникаций показан ниже:
COMMUNICATION SECTION.
[статья-описания-коммуникации [статья-описания-записи] . .. ] ... СЕКЦИЯ КОММУНИКАЦИЙ.
[статья-описания-коммуникации
[статья-описания-записи] . . . ] ...
Статья описания коммуникации
В программе на Коболе статья описания коммуникации представляет собой высший уровень организации в секции коммуникаций. За заголовком секции коммуникаций следует статья описания коммуникации, содержащая индикатор уровня CD (ОК), имя-дан- ного и последовательность независимых фраз. Статья заканчивается точкой.
Для статьи описания коммуникации для ввода фразы указывают очереди [ и подочереди , дату и время сообщения, символический источник, длину текста, ключи состояния и конца, число сообщений. Для статьи описания коммуникации для вывода фразы указывают число адресатов, длину текста, ключи состояния и ошибки, символические адресаты.
Для статьи описания коммуникации для ввода-вывода фразы указывают дату и время сообщения, символический терминал, длину текста, ключи состояния и конца.
Структура описания записи
Область записи, связанная со статьей описания коммуникации, может быть неявно переопределена пользователем статьей описания записи, написанной непосредственно за статьей описания коммуникации.
Описание записи состоит из набора статей описания данных, которые описывают характеристики отдельной записи. Каждая статья описания данного состоит из номера уровня, имени данного или фразы FILLER (ЗАПОЛНИТЕЛЬ), и следующей за ними последовательности независимых фраз. Описание записи может иметь иерархическую структуру, поэтому используемые в статье фразы зависят от наличия подчиненных статей. Структура описания записи и допустимые элементы в статье описания записи приводятся в ч. 4, пп. 4.3.1.3 и 5.3. Употребление отдельных фраз в статье описания данного зависит от уровня модуля ядра, поддерживаемого реализацией.
. Статья описания коммуникации
Назначение
Описание коммуникации определяет область связи между системой управления сообщениями и программой Кобола.
Общий формат
Формат 1
СР имя-коммуникации-1 FOR [INITIAL] INPUT
[[SYMBOLIC QUEUE IS имя-данного-1]
[SYMBOLIC SUB-QUEUE-1 IS имя-данного-2]
[SYMBOLIC SUB-QUEUE-2 IS имя-данного-3]
[SYMBOLIC SUB-QUEUE-3 IS имя-данного-4]
[MESSAGE DATE IS имя-данного-5]
[MESSAGE TIME IS имя-данного-6]
[SYMBOLIC SOURCE IS имя-данного-7]
[TEXT LENGTH IS имя-данного-8](
[END KEY IS имя-данного-9]
[STATUS KEY IS имя-данного-10]
[MESSAGE COUNT IS имя-данного-11] ]
[имя-данного-1, имя-данного-2, имя-данного-3, имя-данного-4 имя-данного-5, имя-данного-6, имя-данного-7, имя-данного-8, имя-данного-9, имя-данного-10, имя-данного-11
]ОК имя-коммуникации-1 ДЛЯ [НАЧАЛЬНОГО] ВВОДА
— |
[ [СИМВОЛИЧЕСКАЯ ОЧЕРЕДЬ имя-данного-1] |
|
[СИМВОЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-1 имя-данного-2] [СИМВОЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-2 имя-данного-3] [СИМВОЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-3 имя-данного-4] г |
|
[ДАТА СООБЩЕНИЯ имя-данного-5] [ВРЕМЯ СООБЩЕНИЯ имя-данного-6] [СИМВОЛИЧЕСКИЙ ИСТОЧНИК имя-данного-7] [ДЛИНА ТЕКСТА имя-данного-8] [КЛЮЧ КОНЦА имя-данного-9] [КЛЮЧ СОСТОЯНИЯ имя-данного-10] [ЧИСЛО СООБЩЕНИЙ имя-данного-11] ]: |
|
[имя-данного-i, имя-данного-2, имя-данного-3, имя-данного-4, имя-данного-5, имя-данного-6, имя-данного-7, имя-данного-8, имя-данного-9, имя-данного-10, имя-данного-11] |
Формат 2
CD имя-коммуникации-1 FOR OUTPUT
[DESTINATION COUNT IS имя-данного-1]
[TEXT LENGTH IS имя-данного-2]
[STATUS KEY IS имя-данного-3]:
[DESTINATION TABLE OCCURS целое-1 TIMES
[INDEXED BY {имя-индекса-1}... ] ]
[ERROR KEY IS имя-данного-4]
[SYMBOLIC DESTINATION IS имя-данного-5].
ОК имя-коммуникации-1 ДЛЯ ВЫВОДА
[ЧИСЛО АДРЕСАТОВ имя-да иного-1]
[ДЛИНА ТЕКСТА имя-данного-2]
[КЛЮЧ СОСТОЯНИЯ имя-данного-3]
[ТАБЛИЦА АДРЕСАТОВ ПОВТОРЯЕТСЯ целое-1 РАЗ
[ИНДЕКСИРУЕТСЯ {имя-индекса-1}... ] ] і
ф с |
[КЛЮЧ ОШИБКИ имя-данного-4] [СИМВОЛИЧЕСКИЙ АДРЕСАТ имя-данного-5]. ормат 3 D имя-коммуникации-1 FOR [INITIAL] 1-0 [[MESSAGE DATE IS имя-данного-І] [MESSAGE TIME IS имя-данного-2] [SYMBOLIC TERMINAL IS имя-данного-3] [TEXT LENGTH IS имя-данного-4] [END KEY IS имя-данного-5] [STATUS KEY IS имя-данного-6]] |
|
|
|
|
[имя-данного-1, имя-данного-2, имя-данного-3, имя-данного-4, имя-данного-5, имя-данного-6] |
|
01 |
< имя-коммуникации-1 ДЛЯ НАЧАЛЬНОГО ВВОДА-ВЫВОДА " [ [ДАТА СООБЩЕНИЯ имя-данного-1 ] [ВРЕМЯ СООБЩЕНИЯ имя-данного-2] [СИМВОЛИЧЕСКИЙ ТЕРМИНАЛ имя-данного-3] [ДЛИНА ТЕКСТА имя-данного-4] [КЛЮЧ КОНЦА имя-данного-5] [КЛЮЧ СОСТОЯНИЯ имя-данного-6] ] |
||
|
|
[имя-данного-1 имя-данного-2, имя-данного-3, имя-данного-4, имя-данного-5, имя-данного-6] |
|
Синтаксические правила
Все форматы
Статья CD (ОК) может появиться только в секции коммуникаций.
Форматы 1 и 3
В пределах одной программы фраза INITIAL (НАЧАЛЬНОГО) может быть указана только в одной статье описания коммуникации. Эта фраза не может использоваться в программе, для которой в заголовке раздела процедур указан вариант USING (ИСПОЛЬЗУЯ).
Кроме фразы INITIAL (НАЧАЛЬНОГО), все фразы могут быть написаны в любом порядке.
Если ни одна из фраз в формате не указана, за статьей описания коммуникации CD (ОК) должна следовать статья уровня 01 описания данного. В любом случае за статьей CD (ОК) может следовать статья уровня 01 описания данного.
Формат 1
Статьи описания записей, следующие за CD (ОК) для ввода, неявно переопределяют эту запись и должны описывать запись из 87 литер. Допускается неоднократное переопределение этой записи. Однако фразу VALUE (ЗНАЧЕНИЕ) может содержать только первое переопределение. Система управления сообщениями будет всегда обращаться к записи в соответствии с описаниями данных, определенными в общем правиле 2 (см. ч. 6, п. 5.15).
Имя-данного-1 по имя-данного-11 не должны дублироваться в данной статье CD (ОК). Любое из этих имен данных может быть заменено зарезервированным словом FILLER (ЗАПОЛНИТЕЛЬ).
Формат 2
Необязательные фразы могут следовать в любом порядке.
Если в статье описания коммуникации не задана ни одна из фраз, за статьей CD (ОК) должна следовать статья - описания данного уровня 01.
Статьи описания записей, следующие за CD (ОК) для вывода, неявно переопределяют эту запись. Допускается многократное переопределение этой записи. Однако фразу VALUE (ЗНАЧЕНИЕ) может содержать только первое переопределение. Система управления сообщениями обращается к записи в соответствии с описаниями данных, определенными в общих правилах (см. ч. 6, п. 5.15).
Имя-данного-1, имя-данного-2, имя-данного-3, имя-дан- ного-4, имя-данного-5 не должны дублироваться внутри CD (ОК).
(И) I Если не задана фраза DESTINATION TABLE ОС- I I CURS (ТАБЛИЦА АДРЕСАТОВ ПОВТОРЯЕТСЯ), то “Еред- полагается одна область ключа ошибки и одна область символического адресата. В этом случае при обращении к имени-данного-4 и (или) имени-данного-5 не допускается индексирование.
Если задана фраза DESTINATION TABLE OCCURS (ТАБЛИЦА АДРЕСАТОВ ПОВТОРЯЕТСЯ), то к этим данным можно обращаться только используя индексирование.
Уровень 1 модуля коммуникаций требует, чтобы значение имени-данного-1 и целого-2 было равно 1, | Уровень 2 никаких ограничений на значение имени-данного-1 и целого-2 не накладывает.
Формат 3
Статьи описания записей, следующие за CD (ОК) для ввода-вывода, неявно переопределяют эту запись и должны описывать запись из 33 литер стандартного формата данных. Допускается многократное переопределение этой записи, однако фразу VALUE (ЗНАЧЕНИЕ) может содержать только первое переопределение. Система управления сообщениями обращается к записи в соответствии с правилами, определенными в общих правилах (см. ч. 6, п. 5.15).
Имя-данного-1, имя-данного-2, имя-данного-3, имя-данно- го-4, имя-данного-5 и имя-данного-6 не должны дублироваться в данной статье CD (ОК). Любое из этих имен данных может быть заменено зарезервированным словом FILLER (ЗАПОЛНИТЕЛЬ).
Общие правила
Формат 1
Информация CD (ОК) для ввода служит для связи между системой управления сообщениями и программой, так как задает информацию о сообщении, которое будет обрабатываться. Эта информация не поступает с терминала как часть сообщения.
Для каждой статьи CD (ОК) для ввода выделяется область из 87 смежных литер в стандартном формате данных. Эта область записи определяется для системы управления сообщениями следующим образом:
фраза SYMBOLIC QUEUE (СИМВОЛИЧЕСКАЯ ОЧЕРЕДЬ) определяет имя-данного-1 как имя элементарного буквенно-цифрового данного из 12 литер, занимающего в записи позиции 1—12;
фраза SYMBOLIC SUB-QUEUE-1 (СИМВОЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-1) определяет имя-данного-2 как имя элементарного буквенно-цифрового данного из 12 литер, занимающего в записи позиции 13—24;
фраза SYMBOLIC SUB-QUEUE-2 (СИМВОЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-2) определяет имя-данного-3 как имя элементарного буквенно-цифрового данного из 12 литер, занимающего в записи позиции 25—36;
фраза SYMBOLIC SUB-QUEUE-3 (СИМВОЛИЧЕСКАЯ ПОДОЧЕРЕДЬ-3) определяет имя-данного-4 как имя элементарного буквенно-цифрового данного из 12 литер, занимающего в записи позиции 37—48;
фраза MESSAGE DATE (ДАТА СООБЩЕНИЯ) определяет имя-данного-5 как имя данного, неявно описанного как целое из 6 цифр без знака и занимающего в записи позиции 49—54;
фраза MESSAGE TIME (ВРЕМЯ СООБЩЕНИЯ) определяет имя-данного-6 как имя данного, неявно описанного как целое из 8 цифр без знака и занимающего в записи позиции 55—62;
фраза SYMBOLIC SOURCE (СИМВОЛИЧЕСКИЙ ИСТОЧНИК) определяет имя-данного-7 как имя элементарного буквенно-цифрового данного из 12 литер, занимающего в записи позиции 63—74;
фраза TEXT LENGTH (ДЛИНА ТЕКСТА) определяет имя- данного-8 как имя данного, неявно описанного как целое из 4 цифр без знака и занимающего в записи позиции 75—78;
фраза END KEY (КЛЮЧ КОНЦА) определяет имя-данно- го-9 как имя элементарного буквенно-цифрового данного из одной литеры, занимающей в записи позицию 79;
фраза STATUS KEY (КЛЮЧ СОСТОЯНИЯ) определяет имя-данного-10 как имя элементарного буквенно-цифрового данного из двух литер, занимающего в записи позиции 80—81;
м) фраза MESSAGE COUNT (ЧИСЛО СООБЩЕНИЙ) определяет имя-данного-11 как имя элементарного данного, неявно описанного как целое из 6 цифр без знака и занимающего в записи позиции 82—87.
Вместо указанных выше фраз могут быть использованы име- на-данных, которые, взятые по порядку, соответствуют именам- данных, определенным этими фразами.
В любом случае предполагается неявное описание записи, как это представлено ниже.8 Неявное описание
01 имя-данного-0.
02 имя-данного-1 PICTURE Х(12).
02 имя-данного-2 PICTURE Х( 12).
02 имя-данного-3 PICTURE Х(12).
02 имя-данного-4 PICTURE Х(12).
02 имя-данного-5 PICTURE 9(6).
02 имя-данного-6 PICTURE 9 (8).
02 имя-данного-7 PICTURE Х(12).
02 имя-данного-8 PICTURE 9 (4).
02 имя-данного-9 PICTURE X.
02 имя-данного-10 PICTURE XX.
02 имя-данного-11 PICTURE 9(6).
Неявное описание
01 имя-данного-0.
02 имя-данного-1 ШАБЛОН Х( 12).
02 имя-данного-2
ШАБЛОН X (12).
02 имя-данного-3 ШАБЛОН X (12).
02 имя-данного-4
ШАБЛОН Х(12).
02 имя-данного-5 ШАБЛОН 9(6).
К
682 ГОСТ 225S8—89
SYMBOLIC |
SUB-QUEUE-1 |
SYMBOLIC |
SUB-QUEUE-2 |
SYMBOLIC |
SUB-QUEUE-3 |