Учебники

CICS — Краткое руководство

CICS — Обзор

CICS — это система DB / DC, которая используется в онлайн-приложениях. CICS был разработан, потому что пакетная операционная система может выполнять только пакетные программы. Программы CICS могут быть написаны на языках COBOL, C, C ++, Java и т. Д. В наши дни пользователи хотят получать информацию в считанные секунды и в режиме реального времени. Чтобы обеспечить такое быстрое обслуживание, нам нужна система, которая может обрабатывать информацию в режиме онлайн. CICS позволяет пользователям общаться с серверной системой, чтобы получить необходимую информацию. Примеры онлайн-программ включают систему онлайн-банкинга, бронирование авиабилетов и т. Д. На следующем рисунке показаны компоненты CICS и их взаимосвязь:

Обзор CICS

Функции CICS

Основные функции, выполняемые CICS в приложении:

  • CICS управляет запросами от одновременных пользователей в приложении.

  • Хотя в системе CICS работают несколько пользователей, пользователь чувствует, что он является единственным пользователем.

  • CICS предоставляет доступ к файлам данных для чтения или обновления их в приложении.

CICS управляет запросами от одновременных пользователей в приложении.

Хотя в системе CICS работают несколько пользователей, пользователь чувствует, что он является единственным пользователем.

CICS предоставляет доступ к файлам данных для чтения или обновления их в приложении.

Особенности CICS

Особенности CICS следующие:

  • CICS сама по себе является операционной системой, так как она управляет собственным хранилищем процессора, имеет собственный диспетчер задач, который управляет выполнением нескольких программ и предоставляет собственные функции управления файлами.

  • CICS предоставляет онлайн среду в пакетной операционной системе. Представленные вакансии выполняются немедленно.

  • CICS — это обобщенный интерфейс обработки транзакций.

  • Можно иметь две или более областей CICS одновременно, поскольку CICS работает как пакетное задание в операционной системе на внутреннем сервере.

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

CICS предоставляет онлайн среду в пакетной операционной системе. Представленные вакансии выполняются немедленно.

CICS — это обобщенный интерфейс обработки транзакций.

Можно иметь две или более областей CICS одновременно, поскольку CICS работает как пакетное задание в операционной системе на внутреннем сервере.

CICS — Окружающая среда

Сама CICS действует как операционная система. Его задача — обеспечить среду для онлайн-исполнения прикладных программ. CICS работает в одном регионе, разделе или адресном пространстве. CICS выполняет планирование для программ, работающих под ним. CICS запускается как пакетное задание, и мы можем просмотреть его в спуле, выполнив команду PREFIX CICS *. Есть пять основных услуг, которые предоставляются CICS. Все эти сервисы вместе выполняют задачу.

CICS Environment

Ниже приведены услуги, которые мы будем подробно обсуждать шаг за шагом.

  • Системные сервисы
  • Услуги передачи данных
  • Услуги по обработке данных
  • Услуги по программированию приложений
  • Услуги по мониторингу
  • Системные сервисы

CICS поддерживает функции управления для управления распределением или перераспределением ресурсов в системе, а именно:

  • Управление задачами — Управление задачами обеспечивает функции планирования задач и многозадачности. Он заботится о статусе всех задач CICS. Управление задачами распределяет процессорное время между параллельными задачами CICS. Это называется многозадачностью . CICS пытается расставить приоритеты по времени отклика для наиболее важной задачи.

  • Управление программамиуправление программами управляет загрузкой и выпуском прикладных программ. Как только задача начинается, возникает необходимость связать задачу с соответствующей прикладной программой. Хотя многим задачам может потребоваться использовать одну и ту же прикладную программу, CICS загружает в память только одну копию кода. Каждая задача проходит через этот код независимо друг от друга, поэтому многие пользователи могут одновременно выполнять транзакции, использующие одну и ту же физическую копию прикладной программы.

  • Storage Control — Storage Control управляет получением и освобождением основного хранилища. Управление хранилищем получает, контролирует и освобождает динамическое хранилище. Динамическое хранилище используется для областей ввода / вывода, программ и т. Д.

  • Interval Control — Interval Control предлагает услуги таймера.

Управление задачами — Управление задачами обеспечивает функции планирования задач и многозадачности. Он заботится о статусе всех задач CICS. Управление задачами распределяет процессорное время между параллельными задачами CICS. Это называется многозадачностью . CICS пытается расставить приоритеты по времени отклика для наиболее важной задачи.

Управление программамиуправление программами управляет загрузкой и выпуском прикладных программ. Как только задача начинается, возникает необходимость связать задачу с соответствующей прикладной программой. Хотя многим задачам может потребоваться использовать одну и ту же прикладную программу, CICS загружает в память только одну копию кода. Каждая задача проходит через этот код независимо друг от друга, поэтому многие пользователи могут одновременно выполнять транзакции, использующие одну и ту же физическую копию прикладной программы.

Storage Control — Storage Control управляет получением и освобождением основного хранилища. Управление хранилищем получает, контролирует и освобождает динамическое хранилище. Динамическое хранилище используется для областей ввода / вывода, программ и т. Д.

Interval Control — Interval Control предлагает услуги таймера.

Услуги передачи данных

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

  • CICS освобождает прикладные программы от бремени, связанного с проблемами аппаратного обеспечения терминала, с использованием Basic Mapping Support (BMS).

  • CICS обеспечивает работу в нескольких регионах (MRO), через которую могут обмениваться данными несколько регионов CICS в одной и той же системе.

  • CICS обеспечивает межсистемную связь (ISC), через которую область CICS в системе может взаимодействовать с областью CICS в другой системе.

CICS освобождает прикладные программы от бремени, связанного с проблемами аппаратного обеспечения терминала, с использованием Basic Mapping Support (BMS).

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

CICS обеспечивает межсистемную связь (ISC), через которую область CICS в системе может взаимодействовать с областью CICS в другой системе.

Услуги по обработке данных

Службы обработки данных взаимодействуют с такими методами доступа к данным, как BDAM, VSAM и т. Д.

  • CICS облегчает обслуживание запросов на обработку данных из прикладных программ. CICS предоставляет прикладным программистам набор команд для работы с набором данных, доступом к базе данных и связанными операциями.

  • Службы обработки данных взаимодействуют с методами доступа к базам данных, такими как IMS / DB, DB2 и т. Д., И облегчают обслуживание запросов к базе данных из прикладных программ.

  • CICS облегчает управление целостностью данных путем контроля одновременных обновлений записей, защиты данных как задачи ABEND и защиты данных при сбоях системы.

CICS облегчает обслуживание запросов на обработку данных из прикладных программ. CICS предоставляет прикладным программистам набор команд для работы с набором данных, доступом к базе данных и связанными операциями.

Службы обработки данных взаимодействуют с методами доступа к базам данных, такими как IMS / DB, DB2 и т. Д., И облегчают обслуживание запросов к базе данных из прикладных программ.

CICS облегчает управление целостностью данных путем контроля одновременных обновлений записей, защиты данных как задачи ABEND и защиты данных при сбоях системы.

Услуги по программированию приложений

Интерфейс служб прикладного программирования с прикладными программами. Сервисы прикладного программирования CICS предоставляют такие функции, как трансляция на уровне команд, CEDF (средство отладки) и CECI (средство интерпретатора команд). Мы будем обсуждать более подробно в следующих модулях.

Услуги по мониторингу

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

CICS — Основные условия

Мы должны знать основные термины, используемые в CICS, чтобы лучше понять, как это работает. Прикладные программы используют CICS для связи с удаленными и локальными терминалами и подсистемами.

IBM 3270 Terminal

Система отображения информации 3270 — это семейство терминалов дисплея и принтера. 3270 терминалов использовались для подключения к мэйнфрейму через контроллеры IBM. Сегодня доступно программное обеспечение для эмуляции 3270, что означает, что в качестве терминалов 3270 могут использоваться даже обычные ПК. Терминалы 3270 являются немыми и не выполняют никакой обработки. Вся обработка должна выполняться прикладной программой. Терминалы IBM состоят из следующих компонентов —

ЭЛТ-монитор

Монитор ЭЛТ отображает поля вывода или ввода прикладной программы. Снимок экрана монитора ЭЛТ 3278 представлен ниже. Он имеет следующие характеристики —

  • Он способен отображать 1920 символов.

  • Каждая из этих 1920 позиций символов индивидуально адресуема.

  • Прикладная программа COBOL может отправлять данные на все позиции на экране.

  • Характеристики дисплея, такие как интенсивность, защищенность, незащищенность поля, могут быть установлены с помощью BMS, что мы подробно обсудим в следующих модулях.

Он способен отображать 1920 символов.

Каждая из этих 1920 позиций символов индивидуально адресуема.

Прикладная программа COBOL может отправлять данные на все позиции на экране.

Характеристики дисплея, такие как интенсивность, защищенность, незащищенность поля, могут быть установлены с помощью BMS, что мы подробно обсудим в следующих модулях.

CICS CRT Monitor

клавиатура

Клавиши клавиатуры IBM делятся на следующие две категории —

  • Клавиши не AID — все остальные клавиши для букв, цифр, знаков препинания и т. Д. Являются клавишами AID . Когда пользователь вводит текст или цифры с помощью вспомогательных клавиш, CICS даже не узнает, печатает ли пользователь что-либо или нет.

  • Ключи AID — ключи AID известны как ключи идентификатора внимания. CICS может определять только ключи AID. После ввода всех данных, только когда пользователь нажимает одну из клавиш AID, CICS получает контроль. Клавиши AID: ENTER, PF1 — PF24, PA1 — PA3, CLEAR. Ключи AID далее делятся на две категории —

    • Клавиши PF — клавиши PF известны как функциональные клавиши. Клавиши PF позволяют передавать данные с терминала на CICS. Клавиши PF — ENTER и PF1 — PF24.

    • Клавиши PA — клавиши PA известны как клавиши доступа к программе. Клавиши PA не позволяют передавать данные между терминалом и CICS. Клавиши PA — это PA1-PA3 и CLEAR.

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

Ключи AID — ключи AID известны как ключи идентификатора внимания. CICS может определять только ключи AID. После ввода всех данных, только когда пользователь нажимает одну из клавиш AID, CICS получает контроль. Клавиши AID: ENTER, PF1 — PF24, PA1 — PA3, CLEAR. Ключи AID далее делятся на две категории —

Клавиши PF — клавиши PF известны как функциональные клавиши. Клавиши PF позволяют передавать данные с терминала на CICS. Клавиши PF — ENTER и PF1 — PF24.

Клавиши PA — клавиши PA известны как клавиши доступа к программе. Клавиши PA не позволяют передавать данные между терминалом и CICS. Клавиши PA — это PA1-PA3 и CLEAR.

Клавиатура CICS

Сделка

Программа CICS вызывается через транзакцию. Транзакция CICS — это набор логически связанных программ в приложении. Целое приложение может быть логически разделено на несколько транзакций.

  • Идентификаторы транзакций длиной от 1 до 4 символов используются для идентификации транзакций, которые хотят выполнять пользователи.

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

Идентификаторы транзакций длиной от 1 до 4 символов используются для идентификации транзакций, которые хотят выполнять пользователи.

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

задача

Задача — это единица работы, специфичная для пользователя.

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

  • Транзакция может быть завершена с помощью нескольких задач.

  • Задача может получать данные и отправлять данные в терминал, который его запустил. Он может читать и записывать файлы, а также запускать другие задачи.

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

Транзакция может быть завершена с помощью нескольких задач.

Задача может получать данные и отправлять данные в терминал, который его запустил. Он может читать и записывать файлы, а также запускать другие задачи.

Задача против транзакции

Разница между транзакцией и задачей состоит в том, что несколько пользователей могут вызывать транзакцию, но каждый пользователь инициирует свою собственную задачу.

LUW

LUW обозначает логическую единицу работы. LUW утверждает, что часть работы должна быть выполнена полностью или не выполнена вообще. Задача может содержать несколько логических единиц работ в CICS. Об этом мы поговорим в следующих модулях.

заявка

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

CICS — Ядро

Пять описанных ранее компонентов системы CICS представляют собой удобную группу программ системы CICS, каждая из которых выполняет свои собственные специализированные функции. Ядро CICS, известное как CICS Nucleus, состоит из поставляемых IBM программ управления CICS и управляющих таблиц.

Управляющие программы

Ядро CICS состоит из управляющих программ и соответствующих управляющих таблиц. Это дает уникальные преимущества. Это делает систему CICS очень гибкой и, следовательно, простой в обслуживании. Ниже приведены важные программы управления CICS —

TCP

TCP известен как программа управления терминалом.

  • TCP используется для получения сообщений от терминала.

  • Он поддерживает требования к аппаратной связи.

  • Он просит CICS инициировать задачи.

TCP используется для получения сообщений от терминала.

Он поддерживает требования к аппаратной связи.

Он просит CICS инициировать задачи.

KCP

KCP известен как программа управления задачами.

  • KCP используется для одновременного управления выполнением задач и связанных с ними свойств.

  • Он решает все вопросы, связанные с многозадачностью.

KCP используется для одновременного управления выполнением задач и связанных с ними свойств.

Он решает все вопросы, связанные с многозадачностью.

PCP

PCP известен как Программа управления программой.

  • PCP используется для поиска и загрузки программ для выполнения.

  • Он передает управление между программами и, в конце концов, возвращает управление обратно в CICS.

PCP используется для поиска и загрузки программ для выполнения.

Он передает управление между программами и, в конце концов, возвращает управление обратно в CICS.

FCP

FCP известен как программа управления файлами.

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

  • Он сохраняет исключительный контроль над записями, чтобы поддерживать целостность данных во время обновления записей.

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

Он сохраняет исключительный контроль над записями, чтобы поддерживать целостность данных во время обновления записей.

SCP

SCP известен как Программа управления хранением. Он используется для управления распределением и освобождением хранилища в пределах области CICS.

Контрольные таблицы

CICS состоит из поставляемых IBM управляющих программ и таблиц CICS. Эти таблицы должны быть обновлены в соответствии с информацией о приложении для успешного выполнения прикладных программ CICS. Ниже приведены важные контрольные таблицы —

TCT

TCT известен как контрольная таблица терминала.

  • Когда мы подключаемся к терминалу CICS, запись делается в таблице TCT.

  • TCT содержит идентификаторы терминала, которые связаны с текущей областью CICS.

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

Когда мы подключаемся к терминалу CICS, запись делается в таблице TCT.

TCT содержит идентификаторы терминала, которые связаны с текущей областью CICS.

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

РСТ

PCT известен как Таблица управления программой.

  • Он содержит идентификаторы транзакций (TRANSID) и соответствующие имена программ или идентификаторы программ.

  • TRANSID является уникальным в таблице PCT.

Он содержит идентификаторы транзакций (TRANSID) и соответствующие имена программ или идентификаторы программ.

TRANSID является уникальным в таблице PCT.

РРТ

PPT известен как Обработка Таблицы Программы. PPT содержит имя программы или имя набора карт, счетчик использования задач, язык, размер, адрес основного хранилища, адрес загрузки библиотеки и т. Д.

  • Имя программы или набора карт уникально в таблице PPT.

  • CICS получает транзакцию, и соответствующее имя программы выделяется для транзакции из PCT. Он проверяет, загружена ли программа или нет. Если он загружен, то счетчик использования задачи увеличивается на 1. Если программа не загружена, то программа сначала загружается, и счетчик использования задачи устанавливается на 1. Он получает адрес библиотеки загрузки из таблицы PPT.

Имя программы или набора карт уникально в таблице PPT.

CICS получает транзакцию, и соответствующее имя программы выделяется для транзакции из PCT. Он проверяет, загружена ли программа или нет. Если он загружен, то счетчик использования задачи увеличивается на 1. Если программа не загружена, то программа сначала загружается, и счетчик использования задачи устанавливается на 1. Он получает адрес библиотеки загрузки из таблицы PPT.

FCT

FCT известен как таблица управления файлами.

  • Он содержит имена файлов, тип файла, длину записи и т. Д.

  • Все файлы, используемые в программе CICS, должны быть объявлены в FCT, и они открываются и закрываются самой CICS.

Он содержит имена файлов, тип файла, длину записи и т. Д.

Все файлы, используемые в программе CICS, должны быть объявлены в FCT, и они открываются и закрываются самой CICS.

Сделка

Когда идентификатор транзакции TP02 вводится на терминале CICS, сначала он проверяет, есть ли программа, связанная с этим идентификатором транзакции, в таблице PCT. Если он находит его, то проверяет в таблице PPT, где находится Программа, чтобы выполнить ее.

Если программа уже доступна в памяти, она начинает выполнение этой конкретной программы; если нет, программа загружает программу в память из вторичного хранилища, а затем начинает ее выполнение.

CICS Transaction

Жизненный цикл транзакции

Жизненный цикл транзакции имеет следующие этапы:

Жизненный цикл транзакции CICS

Шаг 1

Оператор терминала инициирует транзакцию, набрав от 1 до 4 символов идентификатора транзакции и нажав клавишу ВВОД.

Шаг 2

TCP периодически проверяет все терминалы на ввод. Когда сообщение получено, оно делает следующее —

  • Поручает SCP создать TIOA.

  • Помещает сообщение в TIOA.

  • Передает контроль КПК.

Поручает SCP создать TIOA.

Помещает сообщение в TIOA.

Передает контроль КПК.

Шаг 3

KCP получает контроль над TCP и делает следующее:

  • Проверяет идентификатор транзакции и безопасность.

  • Поручает SCP создать область управления задачами.

  • Присваивает приоритет задаче на основе приоритета терминала (установлен в TCT), приоритета оператора (установлен в SNT) и приоритета транзакции (установлен в PCT).

  • Добавляет задачу в очередь ожидающих программ.

  • Отправляет ожидающие программы в порядке приоритета.

  • Передает контроль PCP.

Проверяет идентификатор транзакции и безопасность.

Поручает SCP создать область управления задачами.

Присваивает приоритет задаче на основе приоритета терминала (установлен в TCT), приоритета оператора (установлен в SNT) и приоритета транзакции (установлен в PCT).

Добавляет задачу в очередь ожидающих программ.

Отправляет ожидающие программы в порядке приоритета.

Передает контроль PCP.

Шаг 4

PCP получает контроль от KCP и делает следующее:

  • Находит программу и загружает ее, если необходимо.

  • Передает управление в прикладную программу.

Находит программу и загружает ее, если необходимо.

Передает управление в прикладную программу.

Шаг 5

Прикладная программа получает контроль от PCP и выполняет следующее:

  • Запрашивает TCP для помещения сообщения в область РАБОЧЕГО ХРАНЕНИЯ программы.

  • Запрашивает FCP для получения записей из файлов.

Запрашивает TCP для помещения сообщения в область РАБОЧЕГО ХРАНЕНИЯ программы.

Запрашивает FCP для получения записей из файлов.

Шаг 6

FCP получает контроль над прикладной программой и выполняет следующие действия:

  • Запрашивает рабочую область Файла от SCP.

  • Сообщает KCP, что эта задача может дождаться завершения ввода-вывода.

Запрашивает рабочую область Файла от SCP.

Сообщает KCP, что эта задача может дождаться завершения ввода-вывода.

Шаг 7

КПК делает следующее —

  • Отправляет следующую задачу в очередь.

  • Повторно отправляет старую задачу, когда ввод-вывод завершен.

  • Передает контроль в FCP.

Отправляет следующую задачу в очередь.

Повторно отправляет старую задачу, когда ввод-вывод завершен.

Передает контроль в FCP.

Шаг 8

FCP возвращает управление прикладной программе.

Шаг 9

Прикладная программа выполняет следующие действия:

  • Обрабатывает данные файла.

  • Запрашивает TCP для отправки сообщения ввода / вывода.

  • Возвращает контроль PCP.

Обрабатывает данные файла.

Запрашивает TCP для отправки сообщения ввода / вывода.

Возвращает контроль PCP.

Шаг 10

PCP возвращает управление обратно в KCP с просьбой завершить задачу.

Шаг 11

KCP инструктирует SCP освободить все хранилище, выделенное для задачи (кроме TIOA).

Шаг 12

TCP делает следующее —

  • Посылает вывод на терминал.

  • Просит SCP выпустить TIOA.

Посылает вывод на терминал.

Просит SCP выпустить TIOA.

CICS — Сделки

Транзакции CICS используются для выполнения нескольких операций в регионе CICS. Мы будем подробно обсуждать важные транзакции CICS, предоставляемые IBM.

CESN

CESN известен как CICS Execute Sign On.

  • CESN используется для входа в регион CICS.

  • Для входа в CICS нам необходимо предоставить идентификатор пользователя и пароль, предоставленные администратором CICS. На следующем снимке экрана показано, как выглядит экран входа в систему.

CESN используется для входа в регион CICS.

Для входа в CICS нам необходимо предоставить идентификатор пользователя и пароль, предоставленные администратором CICS. На следующем снимке экрана показано, как выглядит экран входа в систему.

CICS CESN

CEDA

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

СЕМТ

CEMT известен как главный терминал CICS Execute. Он используется для запроса и обновления состояния сред CICS, а также для других операций системы.

  • С помощью команды CEMT мы можем управлять транзакциями, задачами, файлами, программами и т. Д.

  • Чтобы получить все возможные варианты, введите CEMT и нажмите клавишу ВВОД. Появятся все варианты.

  • CEMT в основном используется для загрузки новой программы в CICS или для загрузки новой копии программы в CICS после изменения программы или набора карт.

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

Чтобы получить все возможные варианты, введите CEMT и нажмите клавишу ВВОД. Появятся все варианты.

CEMT в основном используется для загрузки новой программы в CICS или для загрузки новой копии программы в CICS после изменения программы или набора карт.

пример

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

CEMT 
  
** Press ENTER & Following Screen is displayed **  

STATUS: ENTER ONE OF THE FOLLOWING 
Inquire 
Perform 
Set 
 
** Command to close a file **
  
CEMT SET FILE (file-name) 
CEMT I FILE (file-name)

CECI

CECI известен как CICS Execute Command Interpreter. Многие команды CICS могут быть выполнены с использованием CECI.

  • CECI используется для проверки синтаксиса команды. Он выполняет команду, только если синтаксис правильный.

  • Введите опцию CECI на пустом экране CICS после входа в систему. Это даст вам список доступных опций.

CECI используется для проверки синтаксиса команды. Он выполняет команду, только если синтаксис правильный.

Введите опцию CECI на пустом экране CICS после входа в систему. Это даст вам список доступных опций.

пример

В следующем примере показано, как отправить отображенные выходные данные на терминал. Мы будем обсуждать о MAPS в следующих модулях.

CECI SEND MAP (map-name) MAPSET (mapset-name) ERASE 

CEDF

CEDF известен как средство отладки CICS. Он используется для пошаговой отладки программы, что помогает в поиске ошибок.

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

КЦР

CMAC известен как сообщения CICS для кодов завершения. Он используется для поиска объяснения и причин кодов CICS Abend.

пример

В следующем примере показано, как проверить детали для кода Abend —

CMAC abend-code

CESF

CESF известен как CICS Execute Sign Off. Он используется для выхода из региона CICS.

пример

В следующем примере показано, как выйти из региона CICS —

CESF LOGOFF

CEBR

CEBR известен как CICS Execute Temporary storage. Он используется для отображения содержимого очереди временного хранения или TSQ.

CEBR используется во время отладки для проверки правильности записи и извлечения элементов очереди. Мы обсудим больше о TSQ в следующих модулях.

пример

В следующем примере показано, как вызвать команду CEBR —

CEBR queue-id

Концепции CICS

Каждая команда может быть достигнута путем выполнения серии макросов CICS. Мы обсудим некоторые основные функции, которые помогут нам лучше понять концепции —

Многозадачность

Эта особенность операционной системы позволяет выполнять более одной задачи одновременно. Задачей может быть совместное использование одной и той же программы или использование разных программ. CICS планирует задачу в своем собственном регионе.

Многопоточность

Эта особенность операционной системы позволяет одновременно выполнять несколько задач, совместно используя одну и ту же программу. Чтобы многопоточность была возможной, прикладная программа должна быть реентерабельной программой в операционной системе или квази реентерабельной в CICS.

Re-entrancy

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

Квази-Реентерабельность

Квази-реентерабельная программа — это реентерабельная программа в среде CICS. CICS обеспечивает повторный вход, приобретая уникальную область хранения для каждой задачи. Между командами CICS CICS имеет исключительное право использовать ресурсы ЦП и может выполнять другие команды CICS других задач.

Временами многие пользователи одновременно используют одну и ту же программу; это то, что мы называем многопоточностью . Например, предположим, что 50 пользователей используют программу A. Здесь CICS предоставит 50 рабочих хранилищ для этой программы, но с одним делением процедур. И этот метод известен как квази-входной .

CICS — Основы COBOL

Программы CICS написаны на языке COBOL в мейнфреймах. Мы будем обсуждать, как написать простую программу на языке COBOL-CICS, скомпилировать ее и затем выполнить.

Программа CICS

Мы напишем простую программу на языке COBOL-CICS, которая отображает некоторое сообщение на экране вывода CICS. Эта программа предназначена для демонстрации шагов, выполняемых при выполнении программы COBOL-CICS. Ниже приведены шаги для написания простой программы:

Шаг 1

Войдите в мэйнфреймы и откройте сеанс TSO.

Шаг 2

Создайте новый PDS, в котором мы будем кодировать нашу программу.

Шаг 3

Создайте нового члена внутри PDS и закодируйте следующую программу —

IDENTIFICATION DIVISION.
PROGRAM-ID. HELLO.
DATA DIVISION.
FILE SECTION.
WORKING-STORAGE SECTION.
01 WS-MESSAGE PIC X(40).
01 WS-LENGTH  PIC S9(4) COMP.
PROCEDURE DIVISION.
A000-MAIN-PARA.
   MOVE 'Hello World' TO WS-MESSAGE
   MOVE '+12' TO WS-LENGTH
   EXEC CICS SEND TEXT 
      FROM (WS-MESSAGE)
      LENGHT(WS-LENGTH)  
   END-EXEC
   EXEC CICS RETURN
   END-EXEC.	 

Шаг 4

После кодирования программы нам нужно скомпилировать ее. Мы можем скомпилировать программу, используя следующий JCL —

//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C  
//CICSCOB  EXEC CICSCOB,                                                
//COPYLIB = ABC.XYZ.COPYLIB,                            
//LOADLIB = ABC.XYZ.LOADLIB 
//LIB        JCLLIB ORDER = CICSXXX.CICS.XXXPROC                
//CPLSTP     EXEC DFHEITVL                                
//TRN.SYSIN  DD DSN = ABC.XYZ.PDS(HELLO),DISP = SHR     
//LKED.SYSIN DD *                                        
   NAME HELLO(R)                                          
//

Шаг 5

Откройте сеанс CICS.

Шаг 6

Теперь мы установим программу с помощью следующей команды —

CEMT SET PROG(HELLO) NEW.

Шаг 7

Запустите программу, используя связанный идентификатор транзакции. Transaction-id предоставляется администратором. Это покажет следующий вывод —

Выход CICS

Компиляция программы

Следующая блок-схема показывает шаги, используемые при компиляции программы COBOL-CICS —

Компиляция CICS

Переводчик

Функция транслятора заключается в проверке синтаксических ошибок в командах CICS. Он переводит их в эквивалентные операторы COBOL.

составитель

Функция компилятора заключается в расширении копий книг на языке COBOL. Он компилирует код после проверки исходного кода на наличие синтаксических ошибок.

Редактор связей

Функция редактора связей состоит в том, чтобы связывать различные объектные модули для создания одного модуля загрузки.

CICS — BMS

BMS известен как поддержка основных карт. Приложение состоит из отформатированных экранов, которые служат мостом между терминалом и программами CICS. Для связи между терминалом и программами CICS мы используем услуги ввода / вывода терминала CICS. Мы используем BMS для создания дизайнов экрана с правильными позициями и атрибутами. Ниже приведены функции BMS —

  • BMS действует как интерфейс между терминалом и программами CICS.

  • Дизайн и формат экрана отделены от логики приложения.

  • BMS делает аппаратное обеспечение приложения независимым.

BMS действует как интерфейс между терминалом и программами CICS.

Дизайн и формат экрана отделены от логики приложения.

BMS делает аппаратное обеспечение приложения независимым.

Отформатированный экран

Показанный ниже экран является экраном меню и может быть спроектирован с использованием BMS. Его ключевые моменты заключаются в следующем —

  • На экране могут быть заголовок, дата и любая другая информация, которая должна отображаться.

  • Опция 1, 2 и 3 — это поля Безымянный, которые являются заголовками экрана.

  • В поле «Выбор» нам необходимо указать входные данные. Этот вход затем отправляется в программу CICS для дальнейшей обработки.

  • В нижней части экрана отображаются клавиши действий.

  • Все поля и сам экран определяются с помощью макросов BMS. Когда вся карта определена, мы можем использовать JCL для ее сборки.

На экране могут быть заголовок, дата и любая другая информация, которая должна отображаться.

Опция 1, 2 и 3 — это поля Безымянный, которые являются заголовками экрана.

В поле «Выбор» нам необходимо указать входные данные. Этот вход затем отправляется в программу CICS для дальнейшей обработки.

В нижней части экрана отображаются клавиши действий.

Все поля и сам экран определяются с помощью макросов BMS. Когда вся карта определена, мы можем использовать JCL для ее сборки.

Экран CICS

BMS Основные условия

Ниже приведены основные термины, которые мы будем использовать в следующих модулях.

карта

Карта — это одноэкранный формат, который может быть разработан с использованием макросов BMS. Может иметь имена, содержащие от 1 до 7 символов.

MAPSET

Mapset — это набор карт, которые связаны между собой, образуя модуль загрузки. Он должен иметь запись PPT. Может иметь имена от 1 до 7 символов.

BMS Macros

Карта BMS — это программа, написанная на языке ассемблера для управления экранами. Для определения экрана используются три макроса: DFHMSD, DFHMDI и DFHMDF.

DFHMSD

Макрос DFHMSD генерирует определение Mapset. Это макро-идентификатор, который показывает, что мы запускаем набор карт. Имя набора карт — это имя загружаемого модуля, и должна присутствовать запись в таблице PPT. В следующей таблице приведен список параметров, которые можно использовать в DFHMSD.

Sr.No Параметр и описание
1

ТИП

TYPE используется для определения типа карты. Если ТИП =
КАРТА — Физическая карта создана
DSECT — символическая карта создана
&& SYSPARM — Физический и символический, оба созданы
FINAL — для обозначения конца кодировки набора карт.

2

РЕЖИМ

MODE используется для индикации операций ввода / вывода. ЕСЛИ РЕЖИМ =
IN — только для входной карты
OUT — только для выходной карты
INOUT для карты ввода и вывода

3

LANG

LANG = ASM / COBOL / PL1
Он определяет язык структуры DSECT для копирования в прикладную программу.

4

МЕСТО ХРАНЕНИЯ

Если ХРАНЕНИЕ =
AUTO — получение отдельной символической области карты для каждого набора карт
BASE — иметь одну и ту же базу хранения для символических карт из более чем одного набора карт

5

CTRL

CRTL используется для определения запросов управления устройством. Если CTRL =
FREEKB — чтобы разблокировать клавиатуру
FRSET — для сброса MDT в нулевое состояние
ALARM — для установки будильника во время отображения экрана
ПЕЧАТЬ — для указания набора карт, который будет отправлен на принтер.

6

СРОК

TERM = тип обеспечивает независимость устройства, требуется, если используется терминал, отличный от 3270.

7

TIOAPFX

TIOAPFX = ДА / НЕТ
ДА — зарезервировать пространство префикса (12 байт) для команд BMS для правильного доступа к TIOA. Требуется для командного уровня CICS.

ТИП

TYPE используется для определения типа карты. Если ТИП =
КАРТА — Физическая карта создана
DSECT — символическая карта создана
&& SYSPARM — Физический и символический, оба созданы
FINAL — для обозначения конца кодировки набора карт.

РЕЖИМ

MODE используется для индикации операций ввода / вывода. ЕСЛИ РЕЖИМ =
IN — только для входной карты
OUT — только для выходной карты
INOUT для карты ввода и вывода

LANG

LANG = ASM / COBOL / PL1
Он определяет язык структуры DSECT для копирования в прикладную программу.

МЕСТО ХРАНЕНИЯ

Если ХРАНЕНИЕ =
AUTO — получение отдельной символической области карты для каждого набора карт
BASE — иметь одну и ту же базу хранения для символических карт из более чем одного набора карт

CTRL

CRTL используется для определения запросов управления устройством. Если CTRL =
FREEKB — чтобы разблокировать клавиатуру
FRSET — для сброса MDT в нулевое состояние
ALARM — для установки будильника во время отображения экрана
ПЕЧАТЬ — для указания набора карт, который будет отправлен на принтер.

СРОК

TERM = тип обеспечивает независимость устройства, требуется, если используется терминал, отличный от 3270.

TIOAPFX

TIOAPFX = ДА / НЕТ
ДА — зарезервировать пространство префикса (12 байт) для команд BMS для правильного доступа к TIOA. Требуется для командного уровня CICS.

пример

В следующем примере показано, как кодировать определение набора карт —

MPST01  DFHMSD TYPE = &SYSPARM, X
   CTRL = (FREEKB,FRSET), X
   LANG = COBOL, X 
   STORAGE = AUTO, X
   TIOAPFX = YES, X
   MODE = INOUT, X
   TERM = 3270
   DFHMSD TYPE = FINAL 
END

DFHMDI

Макрос DFHMDI генерирует определения карт. Это показывает, что мы начинаем новую карту. За именем карты следует макрос DFHMDI. Название карты используется для отправки или получения карт. В следующей таблице показаны параметры, которые мы используем внутри макроса DFHMDI.

Sr.No Параметр и описание
1

РАЗМЕР

РАЗМЕР = (строка, столбец)
Этот параметр дает размер карты. BMS позволяет нам строить экран, используя несколько карт, и этот параметр становится важным, когда мы используем более одной карты в одном наборе карт.

2

ЛИНИЯ

Указывает начальный номер строки карты.

3

КОЛОНКА

Указывает начальный номер столбца карты.

4

ОПРАВДАТЬ

Он используется для указания всей карты или полей карты для выравнивания по левому или правому краю.

5

CTRL

CRTL используется для определения запросов управления устройством. Если CTRL =
FREEKB — чтобы разблокировать клавиатуру
FRSET — для сброса MDT в нулевое состояние
ALARM — для установки будильника во время отображения экрана
ПЕЧАТЬ — чтобы указать карту для отправки на принтер

6

TIOAPFX

TIOAPFX = ДА / НЕТ

ДА — зарезервировать пространство префикса (12 байт) для команд BMS для правильного доступа к TIOA. Требуется для командного уровня CICS.

РАЗМЕР

РАЗМЕР = (строка, столбец)
Этот параметр дает размер карты. BMS позволяет нам строить экран, используя несколько карт, и этот параметр становится важным, когда мы используем более одной карты в одном наборе карт.

ЛИНИЯ

Указывает начальный номер строки карты.

КОЛОНКА

Указывает начальный номер столбца карты.

ОПРАВДАТЬ

Он используется для указания всей карты или полей карты для выравнивания по левому или правому краю.

CTRL

CRTL используется для определения запросов управления устройством. Если CTRL =
FREEKB — чтобы разблокировать клавиатуру
FRSET — для сброса MDT в нулевое состояние
ALARM — для установки будильника во время отображения экрана
ПЕЧАТЬ — чтобы указать карту для отправки на принтер

TIOAPFX

TIOAPFX = ДА / НЕТ

ДА — зарезервировать пространство префикса (12 байт) для команд BMS для правильного доступа к TIOA. Требуется для командного уровня CICS.

пример

В следующем примере показано, как кодировать определение карты —

MAPSTD DFHMDI SIZE = (20,80), X
   LINE = 01, X
   COLUMN = 01, X
   CTRL = (FREEKB,FRSET)

DFHMDF

Макрос DFHMDF используется для определения имен полей. Упоминается имя поля, против которого закодирован макрос DFHMDF. Это имя поля используется внутри программы. Мы не пишем имя поля против постоянного поля, которое мы не хотим использовать внутри программы. В следующей таблице приведен список параметров, которые можно использовать внутри макроса DFHMDF.

Sr.No Параметр и описание
1

POS

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

2

ДЛИНА

Это длина поля, не считая байта атрибута.

3

ИСХОДНЫЙ

Это символьные данные для поля вывода. Мы используем это, чтобы указать метки и заголовки для экрана и сохранить их независимыми от программы. Например, для первого поля на экране меню мы будем кодировать: INITIAL = ‘MENU’.

4

ОПРАВДАТЬ

Он используется для указания всей карты или полей карты для выравнивания по левому или правому краю.

5

ATTRB

ATTRB = (ASKIP / PROT / UNPROT, NUM, BRT / NORM / DRK, IC, FSET) Описывает атрибуты поля.

ASKIP — Autoskip. Данные не могут быть введены в это поле. Курсор переходит к следующему полю.

PROT — Защищенное поле. Данные не могут быть введены в это поле. Если данные введены, это вызовет состояние запрета ввода.

UNPROT — незащищенное поле. Данные могут быть введены, и это используется для всех полей ввода.

NUM — Числовое поле. Допускаются только цифры (от 0 до 9) и специальные символы (‘.’ И ‘-‘).

BRT — Яркое отображение поля (подсветка).

НОРМА — Нормальный дисплей.

DRK — темный дисплей.

IC — Вставить курсор. Курсор будет расположен в этом поле. Если IC указан более одного раза, курсор помещается в последнее поле.

FSET — Полевой набор. MDT установлен таким образом, чтобы данные поля отправлялись с терминала на хост-компьютер независимо от того, было ли поле фактически изменено пользователем.

6

PICIN

PICIN применяется к полю данных, которое используется в качестве ввода, например, PICIN = 9 (8).

7

PICOUT

PICIN применяется к полю данных, которое используется в качестве вывода, например PICOUT = Z (8).

POS

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

ДЛИНА

Это длина поля, не считая байта атрибута.

ИСХОДНЫЙ

Это символьные данные для поля вывода. Мы используем это, чтобы указать метки и заголовки для экрана и сохранить их независимыми от программы. Например, для первого поля на экране меню мы будем кодировать: INITIAL = ‘MENU’.

ОПРАВДАТЬ

Он используется для указания всей карты или полей карты для выравнивания по левому или правому краю.

ATTRB

ATTRB = (ASKIP / PROT / UNPROT, NUM, BRT / NORM / DRK, IC, FSET) Описывает атрибуты поля.

ASKIP — Autoskip. Данные не могут быть введены в это поле. Курсор переходит к следующему полю.

PROT — Защищенное поле. Данные не могут быть введены в это поле. Если данные введены, это вызовет состояние запрета ввода.

UNPROT — незащищенное поле. Данные могут быть введены, и это используется для всех полей ввода.

NUM — Числовое поле. Допускаются только цифры (от 0 до 9) и специальные символы (‘.’ И ‘-‘).

BRT — Яркое отображение поля (подсветка).

НОРМА — Нормальный дисплей.

DRK — темный дисплей.

IC — Вставить курсор. Курсор будет расположен в этом поле. Если IC указан более одного раза, курсор помещается в последнее поле.

FSET — Полевой набор. MDT установлен таким образом, чтобы данные поля отправлялись с терминала на хост-компьютер независимо от того, было ли поле фактически изменено пользователем.

PICIN

PICIN применяется к полю данных, которое используется в качестве ввода, например, PICIN = 9 (8).

PICOUT

PICIN применяется к полю данных, которое используется в качестве вывода, например PICOUT = Z (8).

пример

В следующем примере показано, как кодировать определение поля —

DFHMDF POS = (01,01), X
   LENGTH = 7, X
   INITIAL = SCREEN1’, X
      ATTRB = (PROT,NORM)
      STDID DFHMDF POS = (01,70), X
      LENGTH = 08, X
      ATTRB = (PROT,NORM)

CICS — MAP

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

CICS MAPS

Физическая Карта

Физическая карта — это модуль загрузки в библиотеке загрузки, который содержит информацию о том, как карта должна отображаться.

  • Он содержит подробную информацию об атрибутах всех полей на карте и их положения.

  • Он содержит формат отображения карты для данного терминала.

  • Кодируется с помощью макросов BMS. Он собирается отдельно и редактируется по ссылке в библиотеке CICS.

Он содержит подробную информацию об атрибутах всех полей на карте и их положения.

Он содержит формат отображения карты для данного терминала.

Кодируется с помощью макросов BMS. Он собирается отдельно и редактируется по ссылке в библиотеке CICS.

Символическая карта

Символическая карта — это копия книги в библиотеке. Книга копирования используется прикладной программой CICS для отправки и получения данных с терминала.

  • Он содержит все переменные данные, которые копируются в раздел WORKINGSTORAGE программы.

  • В нем есть все названные поля. Программист приложения использует эти поля для чтения и записи данных на карту.

Он содержит все переменные данные, которые копируются в раздел WORKINGSTORAGE программы.

В нем есть все названные поля. Программист приложения использует эти поля для чтения и записи данных на карту.

Шкипер и Стоппер Филд

Для незащищенного именованного поля в карте, если мы указали длину 10, это означает, что поле имени может принимать значения, длина которых не может превышать 10. Но когда вы отображаете эту карту с помощью CICS и начинаете вводить значения для этого поля в На экране мы можем ввести более 10 символов, т.е. до конца экрана, и мы можем ввести даже в следующей строке. Чтобы предотвратить это, мы используем поле Skipper или поле стопора. Поле Skipper обычно будет полем Безымянный длиной 1, указанным после именованного поля.

CICS Skipper & Stopper Field

Скиппер Филд

Если мы поместим поле шкипера после именованного незащищенного поля, то при вводе значения, как только будет достигнута указанная длина, курсор автоматически установится на следующее незащищенное поле. В следующем примере показано, как добавить поле шкипера —

NUMBER  DFHMDF POS = (01,01), X
   LENGTH = 5, X
   ATTRB = (UNPROT,IC)
      DFHMDF POS = (01,07), X
      LENGTH = 1, X
      ATTRB = (ASKIP)

Стоппер Филд

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

NUMBER  DFHMDF POS = (01,01), X
   LENGTH = 5, X
	ATTRB = (UNPROT,IC)
	   DFHMDF POS = (01,07), X
      LENGTH = 1, X
      ATTRB = (PROT)

Атрибут Байт

Байт атрибута любого поля хранит информацию о физических свойствах поля. Следующая диаграмма и таблица объясняют значение каждого бита.

Байт атрибута CICS

Положение бита Описание Настройки Бита
0 & 1 Определяется содержанием бита от 2 до 7
2 и 3 Защита и сдвиг 00 — Незащищенный алфавитно-цифровой
01 — Незащищенный числовой
10 — защищенный стоп
11 — Защищенный пропуск
4 и 5 интенсивность 00 — Нормальный
01 — Нормальный
10 — Яркий
11 — без дисплея (темный)
6 Должен быть ноль всегда
7 Модифицированный тег данных 0 — поле не было изменено
1 — поле было изменено

Модифицированный тег данных

Модифицированный тег данных (MDT) — это последний бит в байте атрибута.

  • MDT — это флаг, который содержит один бит. Он указывает, должно ли значение передаваться в систему или нет.

  • Значение по умолчанию равно 1, когда значение поля изменяется.

  • Если MDT равен 0, данные не могут быть переданы; и если MDT равен 1, то данные могут быть переданы.

MDT — это флаг, который содержит один бит. Он указывает, должно ли значение передаваться в систему или нет.

Значение по умолчанию равно 1, когда значение поля изменяется.

Если MDT равен 0, данные не могут быть переданы; и если MDT равен 1, то данные могут быть переданы.

Отправить карту

Команда send map записывает форматированный вывод в терминал. Используется для отправки карты в терминал из прикладной программы. Следующий фрагмент кода показывает, как отправить карту в терминал —

EXEC CICS SEND 
   MAP('map-name')
   MAPSET('mapset-name')
   [FROM(data-area)]
   [LENGTH(data_value)]
   [DATAONLY]
   [MAPONLY]
   [CURSOR]
   [ERASE/ERASEAUP]
   [FREEKB] 
   [FRSET]
END-EXEC   

В следующей таблице перечислены параметры, используемые в команде send map, а также их значение.

Sr.No Параметр и описание
1

Карта-имя

Это название карты, которую мы хотим отправить. Это обязательно.

2

MAPSET имя

Это имя набора карт, которое содержит имя карты. Имя набора карт необходимо, если оно не совпадает с именем карты.

3

ОТ

Он используется, если мы решили использовать другое имя DSECT, мы должны использовать опцию FROM (dsect-name) вместе с командой SEND MAP.

4

MAPONLY

Это означает, что никакие данные из вашей программы не должны быть объединены в карту и передается только информация из карты.

5

DataOnly

Это логическая противоположность MAPONLY. Мы используем его для изменения переменных данных на дисплее, который уже был создан. Только данные из вашей программы отправляются на экран. Константы на карте не отправляются.

6

УДАЛЕНИЕ

Это приводит к тому, что весь экран стирается перед тем, как мы отправляем.

7

ERASEUP

Это приводит к удалению только незащищенных полей.

8

FRSET

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

9

КУРСОР

Его можно использовать для позиционирования курсора на экране терминала. Курсор можно установить, переместив -1 в L часть поля и затем отправив карту.

10

ТРЕВОГА

Это вызывает звуковой сигнал тревоги.

11

FREEKB.

Клавиатура разблокируется, если мы указываем FREEKB либо в карте, либо в команде SEND.

12

РАСПЕЧАТАТЬ

Это позволяет печатать вывод команды SEND на принтере.

13

Под.стр

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

Карта-имя

Это название карты, которую мы хотим отправить. Это обязательно.

MAPSET имя

Это имя набора карт, которое содержит имя карты. Имя набора карт необходимо, если оно не совпадает с именем карты.

ОТ

Он используется, если мы решили использовать другое имя DSECT, мы должны использовать опцию FROM (dsect-name) вместе с командой SEND MAP.

MAPONLY

Это означает, что никакие данные из вашей программы не должны быть объединены в карту и передается только информация из карты.

DataOnly

Это логическая противоположность MAPONLY. Мы используем его для изменения переменных данных на дисплее, который уже был создан. Только данные из вашей программы отправляются на экран. Константы на карте не отправляются.

УДАЛЕНИЕ

Это приводит к тому, что весь экран стирается перед тем, как мы отправляем.

ERASEUP

Это приводит к удалению только незащищенных полей.

FRSET

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

КУРСОР

Его можно использовать для позиционирования курсора на экране терминала. Курсор можно установить, переместив -1 в L часть поля и затем отправив карту.

ТРЕВОГА

Это вызывает звуковой сигнал тревоги.

FREEKB.

Клавиатура разблокируется, если мы указываем FREEKB либо в карте, либо в команде SEND.

РАСПЕЧАТАТЬ

Это позволяет печатать вывод команды SEND на принтере.

Под.стр

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

Получить карту

Когда мы хотим получить ввод от терминала, мы используем команду RECEIVE MAP. Параметры MAP и MAPSET имеют то же значение, что и для команды SEND MAP. Следующий фрагмент кода показывает, как получить карту —

EXEC CICS RECEIVE 
   MAP('map-name')
   MAPSET('mapset-name')
   [INTO(data-area)]
   [FROM(data-area)]
   [LENGTH(data_value)]
END-EXEC

Исполнение Mapset

Следующие шаги необходимы для разработки и выполнения набора карт —

  • Шаг 1 — Откройте сеанс TSO.

  • Шаг 2 — Создайте новый PDS.

  • Шаг 3 — Кодирование набора карт в новом элементе в соответствии с требованием.

  • Шаг 4 — Соберите набор карт, используя JCL, предоставленный администратором CICS.

  • Шаг 5 — Откройте сессию CICS.

  • Шаг 6 — Установите программу с помощью команды —

    CEMT SET PROG (название набора карт) NEW

  • Шаг 7 — Введите следующую команду, чтобы отправить карту в терминал —

    CECI ОТПРАВИТЬ КАРТУ (имя-карты) КАРТУ (имя-набора карт) ERASE FREEKB

Шаг 1 — Откройте сеанс TSO.

Шаг 2 — Создайте новый PDS.

Шаг 3 — Кодирование набора карт в новом элементе в соответствии с требованием.

Шаг 4 — Соберите набор карт, используя JCL, предоставленный администратором CICS.

Шаг 5 — Откройте сессию CICS.

Шаг 6 — Установите программу с помощью команды —

CEMT SET PROG (название набора карт) NEW

Шаг 7 — Введите следующую команду, чтобы отправить карту в терминал —

CECI ОТПРАВИТЬ КАРТУ (имя-карты) КАРТУ (имя-набора карт) ERASE FREEKB

CICS — интерфейсный блок

Любой прикладной программе потребуется интерфейс для взаимодействия с CICS. EIB (Execute Interface Block) действует как интерфейс, позволяющий прикладным программам взаимодействовать с CICS. EIB содержит информацию, необходимую во время выполнения программы.

Ограниченные глаголы COBOL

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

  • Операторы ввода-вывода файлов, такие как «Открыть», «Чтение», «Запись», «Переписать», «Закрыть», «Удалить» и «Запуск» Весь файловый ввод / вывод в CICS обрабатывается модулем управления файлами, и у них есть свой собственный набор операторов, таких как READ, WRITE, REWRITE и DELETE, которые мы будем обсуждать в следующих модулях.

  • Файловый раздел и отдел среды не требуются.

  • Нельзя использовать операторы COBOL, которые вызывают функции операционной системы, такие как Accept, Date / Time.

  • Не используйте DISPLAY, MERGE, STOP RUN и GO BACK.

Операторы ввода-вывода файлов, такие как «Открыть», «Чтение», «Запись», «Переписать», «Закрыть», «Удалить» и «Запуск» Весь файловый ввод / вывод в CICS обрабатывается модулем управления файлами, и у них есть свой собственный набор операторов, таких как READ, WRITE, REWRITE и DELETE, которые мы будем обсуждать в следующих модулях.

Файловый раздел и отдел среды не требуются.

Нельзя использовать операторы COBOL, которые вызывают функции операционной системы, такие как Accept, Date / Time.

Не используйте DISPLAY, MERGE, STOP RUN и GO BACK.

Выполнить блок интерфейса

Execute Interface Block (EIB) — это блок управления, который автоматически загружается CICS для каждой программы.

  • EIB является уникальным для задачи и существует в течение всей задачи. Он содержит набор системной информации, соответствующей задаче.

  • Он содержит информацию об идентификаторе транзакции, времени, дате и т. Д., Которая используется CICS во время выполнения прикладной программы.

  • Каждая программа, которая выполняется как часть задачи, имеет доступ к одному и тому же EIB.

  • Данные в EIB во время выполнения можно просмотреть, выполнив программу в режиме CEDF.

EIB является уникальным для задачи и существует в течение всей задачи. Он содержит набор системной информации, соответствующей задаче.

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

Каждая программа, которая выполняется как часть задачи, имеет доступ к одному и тому же EIB.

Данные в EIB во время выполнения можно просмотреть, выполнив программу в режиме CEDF.

Поля ЕИБ

В следующей таблице приведен список полей, которые присутствуют в EIB —

EIB Field Пункт ПОС Описание
EIBAID Х (1) Клавиша помощи нажата
EIBCALEN S9 (4) КОМП Содержит длину DFHCOMMAREA
EIBDATE S9 (7) COMP-3 Содержит текущую системную дату
EIBRCODE Х (6) Содержит код возврата последней транзакции
EIBTASKN S9 (7) COMP-3 Содержит номер задачи
EIBTIME S9 (7) COMP-3 Содержит текущее системное время
EIBTRMID Х (4) Идентификатор терминала
EIBTRNID Х (4) Идентификатор транзакции

Классификация программ CICS

Программы CICS подразделяются на следующие три категории, которые мы обсудим по очереди —

  • Некоговорящие программы
  • Разговорные программы
  • Псевдо-разговорные программы — мы обсудим в следующем модуле

Не разговорные программы

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

  • Они похожи на пакетные программы, которые запускаются в пакетном режиме. Так что в CICS они развиваются редко.

  • Мы можем сказать, что они используются только для отображения последовательности экранов через равные промежутки времени.

Они похожи на пакетные программы, которые запускаются в пакетном режиме. Так что в CICS они развиваются редко.

Мы можем сказать, что они используются только для отображения последовательности экранов через равные промежутки времени.

пример

В следующем примере показана не диалоговая программа, которая просто выводит «HELLO WORLD» на терминал CICS в качестве вывода —

IDENTIFICATION DIVISION.                                
PROGRAM-ID. HELLO.                                      
DATA DIVISION.                                          
WORKING-STORAGE SECTION.                                
01 WS-MESSAGE          PIC X(30).                       
PROCEDURE DIVISION.                                     
********************************************************
* SENDING DATA TO SCREEN                               * 
********************************************************
   MOVE 'HELLO WORLD' TO WS-MESSAGE                
   EXEC CICS SEND TEXT                             
      FROM (WS-MESSAGE)                          
   END-EXEC                                        
********************************************************
* TASK TERMINATES WITHOUT ANY INTERACTION FROM THE USER* 
********************************************************
   EXEC CICS RETURN                                
END-EXEC.

Разговорная программа

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

  • Система отправляет сообщение на экран и ожидает ответа пользователя.

  • Время, затрачиваемое пользователем на ответ, известно как время ожидания . Это время значительно выше, что является основным недостатком разговорных программ.

  • Пользователь вводит необходимые данные и нажимает клавишу AID.

  • Приложение обрабатывает ввод пользователя и отправляет вывод.

  • Программа загружается в основное хранилище в начале и сохраняется до завершения задачи.

Система отправляет сообщение на экран и ожидает ответа пользователя.

Время, затрачиваемое пользователем на ответ, известно как время ожидания . Это время значительно выше, что является основным недостатком разговорных программ.

Пользователь вводит необходимые данные и нажимает клавишу AID.

Приложение обрабатывает ввод пользователя и отправляет вывод.

Программа загружается в основное хранилище в начале и сохраняется до завершения задачи.

Программа преобразования CICS

пример

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

IDENTIFICATION DIVISION.                               
PROGRAM-ID. HELLO.                                     
DATA DIVISION.                                         
WORKING-STORAGE SECTION.                               
01 WS-MESSAGE          PIC X(30) VALUE SPACES.         
PROCEDURE DIVISION.                                    
   MOVE 'ENTER MESSAGE' TO WS-MESSAGE           
********************************************************
* SENDING DATA FROM PROGRAM TO SCREEN                  * 
********************************************************
   EXEC CICS SEND TEXT                            
      FROM (WS-MESSAGE)                         
   END-EXEC                                       
********************************************************
* GETTING INPUT FROM USER                              * 
********************************************************
   EXEC CICS RECEIVE                              
      INTO(WS-MESSAGE)                          
   END-EXEC                                       
   EXEC CICS SEND TEXT                            
      FROM (WS-MESSAGE)                         
   END-EXEC                                       
********************************************************
* COMMAND TO TERMINATE THE TRANSACTION                 * 
********************************************************
   EXEC CICS RETURN                               
END-EXEC.                                       

CICS — псевдопрограммирование

На данный момент мы рассмотрели программы без конвертации и конвертации. Конверсионные программы имеют большой недостаток, так как время их обдумывания значительно выше. Чтобы преодолеть эту проблему, пришло в голову программирование псевдо-преобразования. Теперь мы обсудим больше о программах псевдо-преобразования.

Программа псевдо-конверсии

Ниже приведена последовательность событий, происходящих в программе псевдо-преобразования.

  • Шаг 1 — Система отправляет сообщение на экран и завершает транзакцию, указывая транзакцию, которая должна быть запущена при получении ввода пользователя.

  • Шаг 2 — Система распределяет ресурсы, используемые этой транзакцией, для других транзакций, работающих в системе. Таким образом, мы можем использовать ресурсы в программе псевдо-преобразования, пока пользователь не введет данные.

  • Шаг 3 — Система опрашивает вход терминала через регулярные промежутки времени. Когда ввод получен, он обрабатывается и выводится на экран.

  • Шаг 4 — Прикладная программа загружается в основное хранилище при необходимости и освобождается, когда она не используется.

Шаг 1 — Система отправляет сообщение на экран и завершает транзакцию, указывая транзакцию, которая должна быть запущена при получении ввода пользователя.

Шаг 2 — Система распределяет ресурсы, используемые этой транзакцией, для других транзакций, работающих в системе. Таким образом, мы можем использовать ресурсы в программе псевдо-преобразования, пока пользователь не введет данные.

Шаг 3 — Система опрашивает вход терминала через регулярные промежутки времени. Когда ввод получен, он обрабатывается и выводится на экран.

Шаг 4 — Прикладная программа загружается в основное хранилище при необходимости и освобождается, когда она не используется.

Программа псевдо-конверсии CICS

Методы псевдо-преобразования

Важный момент, на который следует обратить внимание при псевдо-разговоре, — это передача данных между каждой задачей. Мы обсудим методы передачи данных.

COMMAREA

COMMAREA известна как зона связи. COMMAREA используется для передачи данных между задачами. В следующем примере показано, как передать COMMAREA, где WSCOMMAREA и WS-COMMAREA-LENGTH объявлены в разделе «Рабочее хранилище»:

EXEC CICS RETURN
   TRANSID ('transaction-id')
   COMMAREA (WS-COMMAREA)
   LENGTH  (WS-COMMAREA-LENGTH)
END-EXEC.

DFHCOMMAREA

DFHCOMMAREA — это специальная область памяти, которая предоставляется CICS для каждой задачи.

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

  • Он объявлен в разделе «Связывание» программы на уровне 01.

  • Он должен иметь то же положение с картинкой, что и WS-COMMAREA.

  • Данные могут быть перемещены обратно из DFHCOMMAREA в WS-COMMAREA с помощью оператора MOVE.

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

Он объявлен в разделе «Связывание» программы на уровне 01.

Он должен иметь то же положение с картинкой, что и WS-COMMAREA.

Данные могут быть перемещены обратно из DFHCOMMAREA в WS-COMMAREA с помощью оператора MOVE.

MOVE DFHCOMMAREA TO WS-COMMAREA.

пример

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

WORKING-STORAGE SECTION.
01 WS-COMMAREA.
   05 WS-DATA PIC X(10).
   
LINKAGE SECTION.
01 DFHCOMMAREA.
   05 LK-DATA PIC X(10).

Псевдокод

Ниже приведена логика псевдокода, который мы используем в псевдопрограммировании.

MOVE DFHCOMMAREA TO WS-COMMAREA
IF EIBCALEN = 0
   STEP1: SEND MAP
   STEP2: MOVE <internal-transaction-id1> to WS-COMMAREA
   STEP3: ISSUE CONDITIONAL RETURN
ELSE
   IF WS-COMMAREA = <internal-transaction-id1> 
      STEP4: RECEIVE MAP
      STEP5: PROCESS DATA
      STEP6: SEND OUTPUT MAP
      STEP7: MOVE <internal-transaction-ID2> to WS-COMMAREA
      STEP8: ISSUE CONDITIONAL RETURN 
   END-IF
END-IF      
STEP9: REPEAT STEP3 TO STEP7 UNTIL EXIT

пример

В следующем примере показана программа псевдо-преобразования:

******************************************************************
* PROGRAM TO DEMONSTRATE PSEUDO-CONVERSATION                     *
******************************************************************
IDENTIFICATION DIVISION.                                         
PROGRAM-ID. HELLO.                                               
DATA DIVISION.                                                   
WORKING-STORAGE SECTION.                                         
01 WS-MESSAGE          PIC X(30).                                
01 WS-COMMAREA         PIC X(10) VALUE SPACES.                    
LINKAGE SECTION.                                                 
01 DFHCOMMAREA         PIC X(10).                                 
PROCEDURE DIVISION.
   MOVE DFHCOMMAREA TO WS-COMMAREA
   IF  WS-COMMAREA  =  SPACES                                   
******************************************************************
* TRANSACTION GETTING EXECUTED FOR THE FIRST TIME                *
******************************************************************
   MOVE 'HELLO' TO WS-MESSAGE                               
   EXEC CICS SEND TEXT                                      
      FROM (WS-MESSAGE)                                   
   END-EXEC                                                 
   MOVE 'FIRST' TO WS-COMMAREA                              
******************************************************************
* TASK ENDS AS A RESULT OF RETURN. IF AID KEY PRESSED, NEXT      *
* TRANSACTION SHOULD BE TP002. DATA PASSED FROM WS-COMMAREA TO   *
* DFHCOMMAREA                                                    *
******************************************************************
   EXEC CICS RETURN                                         
      TRANSID('TP002')                                      
      COMMAREA(WS-COMMAREA)                                
   END-EXEC                                                 
******************************************************************
* IF  COMMAREA IS NOT EMPTY , THEN TP002 HAS BEEN EXECUTED ONCE  *
* ALREADY, USER INTERACTION IS FACILITATED BY RECEIVE            *
******************************************************************
   ELSE                                                         
      EXEC CICS RECEIVE                                        
         INTO(WS-MESSAGE)                                    
   END-EXEC
      EXEC CICS SEND TEXT                                      
      FROM (WS-MESSAGE)                                   
   END-EXEC                                                 
******************************************************************
* TASK ENDS AS A RESULT OF RETURN, NO NEXT TRANSACTION SPECIFIED *
* TO BE EXECUTED                                                 *
******************************************************************
   EXEC CICS RETURN                                         
   END-EXEC                                                 
END-IF.       

Преимущества псевдо-конверсии

Ниже приведены преимущества псевдо-преобразования:

  • Ресурсы лучше всего используются. Ресурсы освобождаются, как только программа временно приостанавливается.

  • Похоже, что он находится в диалоговом режиме.

  • У него лучшее время отклика.

Ресурсы лучше всего используются. Ресурсы освобождаются, как только программа временно приостанавливается.

Похоже, что он находится в диалоговом режиме.

У него лучшее время отклика.

Вернуться Заявления

Ниже приведены два типа операторов возврата, которые используются в CICS.

Возвратно-1

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

EXEC CICS RETURN 
END-EXEC.

Возвратно-2

При выполнении следующего условного возврата, т. Е. Оператора return с TRANSID, элемент управления возвращается в CICS со следующим выполненным транзакцией. Следующая транзакция начинается, когда пользователь нажимает клавишу AID.

EXEC CICS RETURN
   TRANSID ('trans-id')
   [COMMAREA(WS-COMMAREA)]
END-EXEC.

CICS — Ключи помощи

Как мы уже обсуждали в предыдущих модулях, ключи AID известны как ключи идентификатора внимания. CICS может определять только ключи AID. После ввода всех вводимых данных, только когда пользователь нажимает одну из клавиш AID, CICS получает контроль. Клавиши AID включают ENTER, PF1 до PF24, PA1 до PA3 ​​и CLEAR.

Проверка ключей AID

Нажатая пользователем клавиша проверяется с помощью EIBAID.

  • EIBAID имеет длину в один байт и содержит фактическое значение идентификатора внимания, используемое во входном потоке 3270.

  • CICS предоставляет нам предварительно закодированный набор переменных, которые можно использовать в прикладной программе, написав следующее утверждение:

    КОПИЯ DFHAID

EIBAID имеет длину в один байт и содержит фактическое значение идентификатора внимания, используемое во входном потоке 3270.

CICS предоставляет нам предварительно закодированный набор переменных, которые можно использовать в прикладной программе, написав следующее утверждение:

КОПИЯ DFHAID

DFHAID

DFHAID — это тетрадь, которая используется в прикладных программах для включения предварительно кодированного набора переменных CICS. Следующее содержание присутствует в тетради DFHAID —

01    DFHAID.                             
   02  DFHNULL   PIC  X  VALUE IS ' '.     
   02  DFHENTER  PIC  X  VALUE IS ''''.    
   02  DFHCLEAR  PIC  X  VALUE IS '_'.     
   02  DFHCLRP   PIC  X  VALUE IS '¦'.     
   02  DFHPEN    PIC  X  VALUE IS '='.     
   02  DFHOPID   PIC  X  VALUE IS 'W'.     
   02  DFHMSRE   PIC  X  VALUE IS 'X'.     
   02  DFHSTRF   PIC  X  VALUE IS 'h'.     
   02  DFHTRIG   PIC  X  VALUE IS '"'.     
   02  DFHPA1    PIC  X  VALUE IS '%'.     
   02  DFHPA2    PIC  X  VALUE IS '>'.     
   02  DFHPA3    PIC  X  VALUE IS ','.     
   02  DFHPF1    PIC  X  VALUE IS '1'.     
   02  DFHPF2    PIC  X  VALUE IS '2'.     
   02  DFHPF3    PIC  X  VALUE IS '3'.     
   02  DFHPF4    PIC  X  VALUE IS '4'.     
   02  DFHPF5    PIC  X  VALUE IS '5'.     
   02  DFHPF6    PIC  X  VALUE IS '6'.     
   02  DFHPF7    PIC  X  VALUE IS '7'.     
   02  DFHPF8    PIC  X  VALUE IS '8'.     
   02  DFHPF9    PIC  X  VALUE IS '9'.     
   02  DFHPF10   PIC  X  VALUE IS ':'.     
   02  DFHPF11   PIC  X  VALUE IS '#'.     
   02  DFHPF12   PIC  X  VALUE IS '@'.     
   02  DFHPF13   PIC  X  VALUE IS 'A'.     
   02  DFHPF14   PIC  X  VALUE IS 'B'.     
   02  DFHPF15   PIC  X  VALUE IS 'C'.   
   02  DFHPF16   PIC  X  VALUE IS 'D'.   
   02  DFHPF17   PIC  X  VALUE IS 'E'.   
   02  DFHPF18   PIC  X  VALUE IS 'F'.   
   02  DFHPF19   PIC  X  VALUE IS 'G'.   
   02  DFHPF20   PIC  X  VALUE IS 'H'.   
   02  DFHPF21   PIC  X  VALUE IS 'I'.   
   02  DFHPF22   PIC  X  VALUE IS '¢'.   
   02  DFHPF23   PIC  X  VALUE IS '.'.   
   02  DFHPF24   PIC  X  VALUE IS '<'.   

пример

В следующем примере показано, как использовать тетрадь DFHAID в прикладной программе:

IDENTIFICATION DIVISION.                                         
PROGRAM-ID. HELLO.                                               
DATA DIVISION.   
WORKING-STORAGE SECTION.
COPY DFHAID.
PROCEDURE DIVISION.
A000-AIDKEY-PARA.
   EVALUATE EIBAID
      WHEN DFHAID
         PERFORM A000-PROCES-PARA
      WHEN DFHPF1
         PERFORM A001-HELP-PARA
      WHEN DFHPF3
         PERFORM A001-EXIT-PARA
    END-EVALUATE.

Позиционирование курсора

Есть два способа переопределить положение, указанное в определении карты.

  • Один из способов — указать положение экрана относительно номера строки и столбца в опции CURSOR команды send map.

  • Другой способ — переместить -1 в символьную переменную карты с суффиксом L. Затем отправьте карту с опцией CURSOR в SEND MAP.

Один из способов — указать положение экрана относительно номера строки и столбца в опции CURSOR команды send map.

Другой способ — переместить -1 в символьную переменную карты с суффиксом L. Затем отправьте карту с опцией CURSOR в SEND MAP.

пример

В следующем примере показано, как переопределить положение курсора для поля NAME.

MOVE -1 TO NAMEL
   EXEC CICS SEND 
      MAP ('map-name')
      MAPSET ('name-field')
      ERASE
      FREEKB
      CURSOR
   END-EXEC.

Динамически Изменяемые Атрибуты

При отправке карты, если мы хотим иметь другие атрибуты для поля, отличного от указанного на карте, мы можем переопределить это, установив поле в программе. Ниже приведено объяснение переопределения атрибутов поля:

  • Чтобы переопределить атрибуты поля, мы должны включить DFHATTR в прикладную программу. Это обеспечивается CICS.

  • Требуемый атрибут можно выбрать из списка и переместить в переменную символического поля с суффиксом «A».

Чтобы переопределить атрибуты поля, мы должны включить DFHATTR в прикладную программу. Это обеспечивается CICS.

Требуемый атрибут можно выбрать из списка и переместить в переменную символического поля с суффиксом «A».

DFHATTR содержит следующее содержание —

01  CICS-ATTRIBUTES.
   05  ATTR-UXN            PIC X(01) VALUE SPACE.
   05  ATTR-UXMN           PIC X(01) VALUE 'A'.
   05  ATTR-UXNL           PIC X(01) VALUE 'D'.
   05  ATTR-UXMNL          PIC X(01) VALUE 'E'.
   05  ATTR-UXBL           PIC X(01) VALUE 'H'.
   05  ATTR-UXMBL          PIC X(01) VALUE 'I'.
   05  ATTR-UXD            PIC X(01) VALUE '<'.
   05  ATTR-UXMD           PIC X(01) VALUE '('.
   05  ATTR-U9N            PIC X(01) VALUE '&'.
   05  ATTR-U9MN           PIC X(01) VALUE 'J'.
   05  ATTR-U9NL           PIC X(01) VALUE 'M'.
   05  ATTR-U9MNL          PIC X(01) VALUE 'N'.
   05  ATTR-U9BL           PIC X(01) VALUE 'Q'.
   05  ATTR-U9MBL          PIC X(01) VALUE 'R'.
   05  ATTR-U9D            PIC X(01) VALUE '*'.
   05  ATTR-U9MD           PIC X(01) VALUE ')'.
   05  ATTR-PXN            PIC X(01) VALUE '-'.
   05  ATTR-PXMN           PIC X(01) VALUE '/'.
   05  ATTR-PXNL           PIC X(01) VALUE 'U'.
   05  ATTR-PXMNL          PIC X(01) VALUE 'V'.
   05  ATTR-PXBL           PIC X(01) VALUE 'Y'.
   05  ATTR-PXMBL          PIC X(01) VALUE 'Z'.
   05  ATTR-PXD            PIC X(01) VALUE '%'.
   05  ATTR-PSN            PIC X(01) VALUE '0'.
   05  ATTR-PSMN           PIC X(01) VALUE '1'.
   05  ATTR-PSNL           PIC X(01) VALUE '4'.
   05  ATTR-PSMNL          PIC X(01) VALUE '5'.
   05  ATTR-PSBL           PIC X(01) VALUE '8'.
   05  ATTR-PSMBL          PIC X(01) VALUE '9'.
   05  ATTR-PSD            PIC X(01) VALUE '@'.
   05  ATTR-PSMD           PIC X(01) VALUE "'".

CICS — Обработка файлов

CICS позволяет нам получать доступ к данным файла разными способами. В онлайн-системе большинство обращений к файлам являются случайными, поскольку обрабатываемые транзакции не группируются и не сортируются по какому-либо порядку. Поэтому CICS поддерживает обычные методы прямого доступа — VSAM и DAM (метод прямого доступа). Это также позволяет нам получать доступ к данным с помощью менеджеров баз данных.

Произвольный доступ

Ниже приведены команды, которые используются для случайной обработки:

Sr.No Команды и описание
1 ЧИТАТЬ

Команда READ читает данные из файла, используя первичный ключ.

2 ЗАПИСЫВАТЬ

Команда записи используется для добавления новых записей в файл.

3 REWRITE

Команда REWRITE используется для изменения записи, которая уже присутствует в файле.

4 УДАЛЯТЬ

Команда DELETE используется для удаления записи, присутствующей в файле.

Команда READ читает данные из файла, используя первичный ключ.

Команда записи используется для добавления новых записей в файл.

Команда REWRITE используется для изменения записи, которая уже присутствует в файле.

Команда DELETE используется для удаления записи, присутствующей в файле.

Последовательный доступ

Ниже приведены команды, которые используются для последовательной обработки:

Sr.No Команды и описание
1 STARTBR

STARTBR известен как начальный просмотр.

2 READNEXT / READPREV

Когда мы запускаем команду STARTBR, она не делает записи доступными.

3 RESETBR

Команда RESETBR позволяет нам сбросить нашу начальную точку в середине просмотра.

4 ENDBR

Когда мы закончили читать файл последовательно, мы прекращаем просмотр с помощью команды ENDBR.

STARTBR известен как начальный просмотр.

Когда мы запускаем команду STARTBR, она не делает записи доступными.

Команда RESETBR позволяет нам сбросить нашу начальную точку в середине просмотра.

Когда мы закончили читать файл последовательно, мы прекращаем просмотр с помощью команды ENDBR.

CICS — Обработка ошибок

Существует много типов аварий и ошибок, с которыми можно столкнуться при использовании приложения CICS. Ошибки могут возникать из-за аппаратных проблем программного обеспечения. Мы будем обсуждать ошибки и обработку ошибок в этом модуле.

Ошибки CICS

Ниже приведены ошибки CICS, которые могут возникнуть при выполнении приложений CICS.

  • Некоторые ожидаемые ошибки CICS возникают, когда условия не являются нормальными в системе CICS. Например, если мы читаем определенную запись, а запись не найдена, мы получаем ошибку «Не найдено». Mapfail — похожая ошибка. Ошибки в этой категории обрабатываются явной логикой в ​​программе.

  • Логические ошибки возникают из-за некоторых причин, таких как деление на ноль, недопустимый символ в числовом поле или ошибка идентификатора транзакции.

  • Ошибки, связанные с оборудованием или другими системными условиями, находятся вне контроля прикладной программы. Например, ошибка ввода / вывода при доступе к файлу.

Некоторые ожидаемые ошибки CICS возникают, когда условия не являются нормальными в системе CICS. Например, если мы читаем определенную запись, а запись не найдена, мы получаем ошибку «Не найдено». Mapfail — похожая ошибка. Ошибки в этой категории обрабатываются явной логикой в ​​программе.

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

Ошибки, связанные с оборудованием или другими системными условиями, находятся вне контроля прикладной программы. Например, ошибка ввода / вывода при доступе к файлу.

Команды обработки ошибок

CICS предоставляет несколько механизмов для выявления ошибок и их обработки в наших программах. Ниже приведены команды, которые используются для обработки ожидаемых ошибок CICS.

Sr.No Команды обработки и описание
1 Состояние ручки

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

2 Ручка Абенд

Если программа завершает работу по каким-либо причинам, например, из-за ошибки ввода-вывода, она может быть обработана с помощью команды Handle Abend CICS.

3 Абенд

Команда Abend используется для намеренного завершения задачи.

4 Игнорировать условие

Условие игнорирования используется, когда мы хотим, чтобы не предпринималось никаких действий, если происходит конкретное аварийное завершение или ошибка, которая упоминается внутри условия игнорирования.

5 Nohandle

Nohandle может быть указан для любой команды CICS.

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

Если программа завершает работу по каким-либо причинам, например, из-за ошибки ввода-вывода, она может быть обработана с помощью команды Handle Abend CICS.

Команда Abend используется для намеренного завершения задачи.

Условие игнорирования используется, когда мы хотим, чтобы не предпринималось никаких действий, если происходит конкретное аварийное завершение или ошибка, которая упоминается внутри условия игнорирования.

Nohandle может быть указан для любой команды CICS.

CICS — Операции управления

Программа управления программами CICS (PCP) управляет потоком прикладных программ. Все прикладные программы должны иметь запись в Таблице обработки программ. Ниже приведены команды, которые используются для служб управления программами:

  • XCTL
  • Ссылка на сайт
  • нагрузка
  • Релиз
  • Вернуть

Программные логические уровни

Прикладные программы, которые выполняются в CICS, имеют различные логические уровни. Первая программа, которая получает управление напрямую, находится на самом высоком логическом уровне, то есть на уровне 1. Связанная программа находится на следующем логическом уровне от программы связывания. Программы XCTL работают на одном уровне. Будет ясно, когда мы пройдем через Link и XCTL, позже в этом модуле. На следующем рисунке показаны логические уровни —

CICS Control Operations

XCTL

Основное объяснение XCTL заключается в следующем —

  • Команда XCTL используется для передачи управления от одной программы к другой на том же уровне.

  • Не ожидает контроля назад.

  • Это похоже на оператор GO TO.

  • Программа XCTL может быть псевдо-разговорной.

Команда XCTL используется для передачи управления от одной программы к другой на том же уровне.

Не ожидает контроля назад.

Это похоже на оператор GO TO.

Программа XCTL может быть псевдо-разговорной.

пример

В следующем примере показано, как использовать команду XCTL для передачи элемента управления другой программе.

IDENTIFICATION DIVISION.                                         
PROGRAM-ID. PROG1.  
WORKING-STORAGE SECTION.
01 WS-COMMAREA    PIC X(100).                                             
PROCEDURE DIVISION.

EXEC CICS XCTL
   PROGRAM ('PROG2')
   COMMAREA (WS-COMMAREA)
   LENGTH (100)
END-EXEC.

Эта команда передает управление, которое должно быть передано программе PROG2 со 100 байтами данных. COMMAREA является необязательным параметром и представляет собой имя области, содержащей данные для передачи или область, в которую должны быть возвращены результаты.

Ссылка на сайт

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

пример

В следующем примере показано, как использовать команду Link для передачи элемента управления другой программе.

IDENTIFICATION DIVISION.                                         
PROGRAM-ID. PROG1.  
WORKING-STORAGE SECTION.
01 WS-COMMAREA    PIC X(100).                                             
PROCEDURE DIVISION.

EXEC CICS LINK
   PROGRAM ('PROG2')
   COMMAREA (WS-COMMAREA)
   LENGTH (100)
END-EXEC.

нагрузка

Команда загрузки используется для загрузки программы или таблицы. Ниже приведен синтаксис команды загрузки:

EXEC CICS LOAD
   PROGRAM ('name')
END-EXEC.

Релиз

Команда Release используется для освобождения программы или таблицы. Ниже приводится синтаксис команды Release —

EXEC CICS RELEASE
   PROGRAM ('name')
END-EXEC.

Вернуть

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

EXEC CICS RETURN
   PROGRAM ('name')
   COMMAREA (data-value)
   LENGTH (data-value)
END-EXEC.

Интервальные контрольные операции

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

ASKTIME

ASKTIME используется для запроса текущего времени и даты или метки времени. Затем мы перемещаем это значение в рабочую переменную хранилища внутри программы. Ниже приведен синтаксис команды ASKTIME —

EXEC CICS ASKTIME
   [ABSTIME(WS-TIMESTAMP)]
END-EXEC.

FormatTime

FORMATTIME форматирует отметку времени в требуемый формат на основе параметров, которые могут быть YYDDD, YYMMDD или YYDDMM для даты. DATESEP указывает разделитель для DATE, как и переменная TIMESEP для TIME. Ниже приведен синтаксис команды FORMATTIME —

EXEC CICS FORMATTIME
   ABSTIME(WS-TIMESTAMP)
   [YYDDD(WS-DATE)]
   [YYMMDD(WS-DATE)]
   [YYDDMM(WS-DATE)]
   [DATESEP(WS-DATE-SEP)]
   [TIME(WS-TIME)]
   [TIMESEP(WS-TIME-SEP)]
END-EXEC.

CICS — временное хранилище

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

COMMAREA

COMMAREA ведет себя как блокнот, который можно использовать для передачи данных из одной программы в другую, либо в рамках одной транзакции, либо из разных транзакций. Он должен быть определен в разделе LINKAGE с использованием имени DFHCOMMAREA.

Общая рабочая зона

Любая транзакция в регионе CICS может получить доступ к Общей рабочей области, и, следовательно, формат и ее использование должны быть согласованы всеми транзакциями в системе, которая решит использовать ее. Во всем регионе CICS есть только один CWA.

Рабочая область транзакций

Рабочая область транзакции используется для передачи данных между прикладными программами, которые выполняются в одной транзакции. TWA существует только на время транзакции. Его размер определяется в таблице управления программой.

Очередь временного хранения

Очередь временного хранения (TSQ) — это функция, предоставляемая программой управления временным хранилищем (TSP).

  • TSQ — это очередь записей, которые могут быть созданы, прочитаны и удалены различными задачами или программами в одном и том же регионе CICS.

  • Идентификатор очереди используется для идентификации TSQ.

  • Запись в TSQ идентифицируется относительной позицией, известной как номер позиции.

  • Записи в TSQ остаются доступными до тех пор, пока весь TSQ явно не будет удален.

  • Записи в TSQ могут быть прочитаны последовательно или напрямую.

  • TSQ могут быть записаны в основном хранилище или вспомогательном хранилище в DASD.

TSQ — это очередь записей, которые могут быть созданы, прочитаны и удалены различными задачами или программами в одном и том же регионе CICS.

Идентификатор очереди используется для идентификации TSQ.

Запись в TSQ идентифицируется относительной позицией, известной как номер позиции.

Записи в TSQ остаются доступными до тех пор, пока весь TSQ явно не будет удален.

Записи в TSQ могут быть прочитаны последовательно или напрямую.

TSQ могут быть записаны в основном хранилище или вспомогательном хранилище в DASD.

WRITEQ TS

Эта команда используется для добавления элементов в существующий TSQ. Также мы можем создать новый TSQ с помощью этой команды. Ниже приводится синтаксис команды WRITEQ TS —

Синтаксис

EXEC CICS WRITEQ TS
   QUEUE ('queue-name')
   FROM (queue-record)
   [LENGTH (queue-record-length)]
   [ITEM (item-number)]
   [REWRITE]
   [MAIN /AUXILIARY]
END-EXEC.

Ниже приведены подробные сведения о параметрах, используемых в команде WRITEQ TS.

  • QUEUE идентифицируется по имени, которое упоминается в этом параметре.

  • Параметры FROM и LENGTH используются для указания записи, которая должна быть записана в очередь, и ее длины.

  • Если указана опция ITEM, CICS назначает номер позиции записи в очереди и устанавливает для области данных, предоставленной в этой опции, номер позиции. Если запись начинает новую очередь, назначенный номер элемента равен 1, и последующие номера элементов следуют последовательно.

  • Опция REWRITE используется для обновления записи, уже присутствующей в очереди.

  • Опция MAIN / AUXILIARY используется для хранения записей в основном или вспомогательном хранилище. По умолчанию ВСПОМОГАТЕЛЬНЫЙ.

QUEUE идентифицируется по имени, которое упоминается в этом параметре.

Параметры FROM и LENGTH используются для указания записи, которая должна быть записана в очередь, и ее длины.

Если указана опция ITEM, CICS назначает номер позиции записи в очереди и устанавливает для области данных, предоставленной в этой опции, номер позиции. Если запись начинает новую очередь, назначенный номер элемента равен 1, и последующие номера элементов следуют последовательно.

Опция REWRITE используется для обновления записи, уже присутствующей в очереди.

Опция MAIN / AUXILIARY используется для хранения записей в основном или вспомогательном хранилище. По умолчанию ВСПОМОГАТЕЛЬНЫЙ.

READQ TS

Эта команда используется для чтения очереди временного хранения. Ниже приводится синтаксис READQ TS —

Синтаксис

EXEC CICS READQ TS
   QUEUE ('queue-name')
   INTO (queue-record)
   [LENGTH (queue-record-length)]
   [ITEM (item-number)]
   [NEXT]
END-EXEC.

DELETEQ TS

Эта команда используется для удаления очереди временного хранения. Ниже приводится синтаксис DELETEQ TS —

Синтаксис

EXEC CICS DELETEQ TS
   QUEUE ('queue-name')
END-EXEC.

Переходная очередь данных

Временная очередь данных носит временный характер, поскольку ее можно быстро создавать и удалять. Это позволяет только последовательный доступ.

  • Содержимое очереди может быть прочитано только один раз, так как оно уничтожается после выполнения чтения и, следовательно, с именем Transient.

  • Это не может быть обновлено.

  • Требуется запись в DCT.

Содержимое очереди может быть прочитано только один раз, так как оно уничтожается после выполнения чтения и, следовательно, с именем Transient.

Это не может быть обновлено.

Требуется запись в DCT.

WRITEQ TD

Эта команда используется для записи очередей временных данных, и они всегда записываются в файл. Ниже приводится синтаксис команды WRITEQ TD —

Синтаксис

EXEC CICS WRITEQ TD
   QUEUE ('queue-name')
   FROM (queue-record)
   [LENGTH (queue-record-length)]
END-EXEC.

READQ TD

Эта команда используется для чтения очереди данных Transient. Ниже приводится синтаксис READQ TD —

Синтаксис

EXEC CICS READQ TD
   QUEUE ('queue-name')
   INTO (queue-record)
   [LENGTH (queue-record-length)]
END-EXEC.

DELETEQ TD

Эта команда используется для удаления очереди данных Transient. Ниже приводится синтаксис DELETEQ TD —

Синтаксис

EXEC CICS DELETEQ TD
   QUEUE ('queue-name')
END-EXEC.

CICS — Взаимосвязь

Взаимная связь, которая имеет место между двумя или более системами, известна как взаимосвязь .

Преимущества общения

Важными преимуществами общения являются следующие:

  • Нам не нужно дублировать данные на всех системах.

  • Пользователям не нужно хранить соединения с несколькими системами для доступа к данным, хранящимся на них.

  • Это улучшает производительность приложения.

Нам не нужно дублировать данные на всех системах.

Пользователям не нужно хранить соединения с несколькими системами для доступа к данным, хранящимся на них.

Это улучшает производительность приложения.

Основные термины

Нужно знать основные термины, используемые в системе CICS. Ниже приведены основные термины —

Локальная система

Локальная система — это система, которая инициирует запрос на взаимодействие.

Локальный ресурс

Локальный ресурс — это ресурс, который находится в локальной системе.

Удаленная система

Удаленная система — это система, которая инициируется в результате запроса на взаимодействие.

Удаленный ресурс

Удаленный ресурс — это ресурс, который находится в удаленной системе.

МВС Сисплекс

MVS Sysplex — это конфигурация нескольких операционных систем MVS. Они работают как единая система, разделяя функции и программы.

CICSPlex

CICSPlex обычно описывается как набор взаимосвязанных областей CICS, которые обрабатывают рабочую нагрузку клиента. CICSPlex — это набор взаимосвязанных регионов CICS, которым принадлежат терминалы, приложения, ресурсы и т. Д.

Методы взаимодействия

CICS может взаимодействовать с другими системами двумя способами:

  • MRO — Multi Region Operation используется, когда двум регионам CICS в одном MVSPLEX необходимо обмениваться данными друг с другом.

  • ISC — межсистемная связь используется, когда область CICS на ЛОКАЛЬНОМ сервере должна обмениваться данными с областью CICS на УДАЛЕННОМ сервере.

MRO — Multi Region Operation используется, когда двум регионам CICS в одном MVSPLEX необходимо обмениваться данными друг с другом.

ISC — межсистемная связь используется, когда область CICS на ЛОКАЛЬНОМ сервере должна обмениваться данными с областью CICS на УДАЛЕННОМ сервере.

CICS — коды состояния

При работе с CICS вы можете столкнуться с неожиданностями. Ниже приведены общие коды с их описанием, которые помогут вам решить проблемы.

ASRA

Исключение проверки программы

AEI0

Ошибка идентификатора программы

AEI9

Ошибка карты

AEIO

Дубликат ключа

АСЭИ

Дублирующая запись

AEID

Конец файла достигнут

АЭП

Файл не открыт

AEIP

Неверное условие запроса

AEY7

Не разрешено использовать ресурс

APCT

Программа не найдена

AFCA

Набор данных не найден

AKCT

Ошибка тайм-аута

ABM0

Указанная карта не найдена

AICA

Программа в бесконечном цикле

AAOW

Внутренняя логическая ошибка