Fórum | tutoriais mais recente desenvolvimento web
 

CICS Guia rápido



CICS - Overview

CICS é um sistema de DB / DC, que é utilizado em aplicações em linha. CICS foi desenvolvido porque o sistema operacional lote pode executar apenas os programas de lote. programas CICS podem ser escritas em COBOL, C, C ++, Java, etc. Estes dias, os usuários querem informações em segundos e em tempo real. Para fornecer tal serviço rápido, precisamos de um sistema que pode processar informações on-line. CICS permite que os usuários se comuniquem com o sistema de back-end para obter a informação desejada. Exemplos de programas on-line incluem o sistema on-line banking, reserva de voo, etc. seguinte imagem mostra os componentes do CICS e como eles estão inter-relacionados -

CICS Overview

Funções do CICS

As principais funções desempenhadas por CICS em um aplicativo são as seguintes -

  • CICS gerencia solicitações de usuários simultâneos em um aplicativo.

  • Embora, vários usuários estão trabalhando no sistema CICS mas dá uma sensação para o usuário que ele é apenas o usuário individual.

  • CICS dá o acesso aos arquivos de dados para ler ou atualizando-os em um aplicativo.


Características do CICS

Os recursos do CICS são os seguintes -

  • CICS é um sistema operacional em si, como ele gerencia seu próprio armazenamento do processador, tem seu próprio gerenciador de tarefas que lida com a execução de vários programas, e fornece suas próprias funções de gerenciamento de arquivos.

  • CICS fornece o ambiente on-line no sistema operacional lote. Trabalhos enviados são executados imediatamente.

  • CICS é uma interface de processamento de transações generalizada.

  • É possível ter duas ou mais regiões CICS, ao mesmo tempo, como CICS é executado como um trabalho em lotes no sistema operacional no back-end.


CICS - Ambiente

CICS próprio actua como um sistema operativo. Sua função é proporcionar um ambiente para execução on-line de programas de aplicação. CICS é executado em uma região ou partição ou o endereço espaço. CICS cuida do agendamento para os programas em execução sob ele. CICS é executado como um trabalho em lotes e podemos vê-lo na bobina, emitindo o comando PREFIX CICS *. Há cinco principais serviços que são fornecidos pelo CICS. Todos esses serviços juntos executar uma tarefa.


CICS Ambiente

A seguir estão os serviços que iremos discutir em detalhes passo a passo -

  • Serviços do sistema
  • Serviços de Comunicação de Dados
  • Serviços de manipulação de dados
  • Serviços de programação de aplicações
  • Serviços de monitoramento
  • Serviços do sistema

CICS mantém as funções de controle para gerenciar a atribuição ou de alocação de recursos dentro do sistema que são os seguintes -

  • Task Control - controle de tarefas fornece agendamento de tarefas e recursos multitarefa. Ela cuida do estado de todas as tarefas do CICS. Controle tarefa aloca tempo do processador entre as tarefas CICS simultâneas. Isto é chamado de multitarefa. CICS tenta priorizar o tempo de resposta para a tarefa mais importante.

  • Programa de Controle - Controle Programa administra o carregamento e liberação de programas de aplicação. Assim que uma tarefa começa, torna-se necessário associar a tarefa com o programa aplicativo apropriado. Embora muitas tarefas pode precisar usar o mesmo programa de aplicação, cargas CICS apenas uma cópia do código na memória. Cada tarefa threads seu caminho através deste código de forma independente, de modo que muitos usuários podem estar executando transações que são simultaneamente usando a mesma cópia física de um programa de aplicação.

  • Controle de armazenamento - Controle de armazenamento gere a aquisição e liberação de armazenamento principal. adquire o controlo de armazenamento, controles e libera armazenamento dinâmico. O armazenamento dinâmico é usado para as zonas de entrada / saída, programas, etc.

  • Interval Control - Controle de intervalo oferece serviços de timer.


Serviços de Comunicação de Dados

interface de serviços de comunicação de dados com métodos de acesso a telecomunicações, tais como BTAM, VTAM e TCAM de tratamento dos pedidos de comunicação de dados de programas de aplicação.

  • CICS lança programas de aplicação do fardo de lidar com problemas de hardware dos terminais através do uso do Basic Mapping Support (BMS).

  • CICS fornece multi região de operação (MRO), através do qual mais de uma região CICS no mesmo sistema podem se comunicar.

  • CICS fornece Inter Sistema de Comunicação (ISC), através do qual uma região CICS em um sistema pode se comunicar com a região do CICS em outro sistema.


Serviços de manipulação de dados

interface de Manipulação de serviços de dados com os métodos de acesso a dados como BDAM, VSAM, etc.

  • CICS facilita o serviço de pedidos de manipulação de dados de programas de aplicação. CICS fornece programadores de aplicações um conjunto de comandos para lidar com conjunto de dados e acesso à base de dados e operações conexas.

  • Tratamento de dados interfaces de serviços com métodos de acesso de banco de dados, tais como IMS / DB, DB2, etc. e facilitar o atendimento de solicitações de banco de dados de programas de aplicação.

  • CICS facilita a gestão da integridade dos dados, o controle de atualizações de registro simultâneas, a protecção dos dados como ABENDs tarefas e protecção de dados em falhas do sistema.


Serviços de programação de aplicações

Aplicação interface de serviços de programação com programas de aplicação. Os serviços de programação de aplicativos de CICS fornecer recursos como a tradução nível de comando, CEDF (a instalação de depuração) e CECI (a instalação de interpretador de comandos). Iremos discutir mais detalhadamente nos próximos módulos.


Serviços de monitoramento

Serviços de monitoramento de monitorar vários eventos dentro de espaço de endereço CICS. Ele fornece série de informação estatística que pode ser utilizado para o ajuste do sistema.


CICS - Termos Básicos

Devemos ter conhecimento dos termos básicos usados ​​no CICS para obter uma melhor compreensão de como ele funciona. programas de aplicação usar CICS para a comunicação com terminais e subsistemas remotas e locais.


IBM 3270 Terminal

3270 Informações Display System é uma família de terminais de exibição e de impressora. 3270 terminais estavam sendo usados ​​para conectar ao mainframe via controladores IBM. Hoje, 3270 emulação software está disponível, o que significa que mesmo os computadores normais pode ser utilizada como 3270 terminais. 3270 terminais são terminais burros e não fazer qualquer processamento si. Todo o processamento tem de ser feito pelo programa de aplicação. terminais IBM consistem nos seguintes componentes -

monitor CRT

O monitor CRT exibe a saída ou os campos de entrada do programa de aplicação. Uma captura de tela de um 3278 Modelo de monitor CRT é mostrado abaixo. Tem as seguintes características -

  • Ele é capaz de exibir 1920 caracteres.

  • Cada uma destas posições de caracteres 1920 é individualmente endereçável.

  • Um programa de aplicação COBOL pode enviar dados para todas as posições na tela.

  • As características de exibição, como intensidade, protegido, não protegido do campo pode ser definido utilizando BMS que iremos discutir em detalhes nos próximos módulos.

CICS Monitor CRT

Teclado

teclas do teclado IBM são divididos em duas categorias a seguir -

  • -Ajuda não Keys - Todas as outras chaves para alfabetos, numérico, pontuação etc. são chaves não-Aid. Quando o usuário digitar texto ou números usando as teclas não-ajuda, CICS não vai nem saber se o usuário está digitando alguma coisa ou não.

  • Chaves SOCORROS - Teclas de ajuda são conhecidos como a atenção Identificador Chaves. CICS pode detectar apenas as chaves AID. Depois de digitar todas as entradas, somente quando o usuário pressiona uma das teclas AID, CICS assume o controle. Chaves auxílio: ENTER, PF1 a PF24, PA1 a PA3, CLEAR. chaves SOCORROS são divididos em duas categorias -

    • PF Keys - teclas PF são conhecidos como teclas de função. teclas PF permitir a transferência de dados de terminal para CICS. PF As chaves são ENTER e PF1 a PF24.

    • PA Chaves - chaves PA são conhecidas como teclas de acesso de programas. chaves PA não permitem a transferência de dados entre terminais e CICS. PA Keys são PA1 a PA3 e clara.

CICS Keyboard

Transação

Um programa CICS é invocado por meio de uma transação. A transação CICS é um conjunto de programas relacionados logicamente em um aplicativo. Toda a aplicação poderia ser logicamente dividido em várias transações.

  • identificadores de transacção que sejam 1 a 4 caracteres são usados ​​para identificar as operações que os usuários querem fazer.

  • Um programador liga um programa para o identificador de transação que é usado para invocar todos os programas de aplicação para essa transação particular.


Tarefa

Uma tarefa é uma unidade de trabalho, que é específica para um utilizador.

  • Usuários invocar um aplicativo usando um dos identificadores de transação. CICS olha para cima para o identificador de transação para descobrir qual o programa para chamar primeiro a fazer o trabalho solicitado. Ele cria uma tarefa para fazer o trabalho, e transfere o controle para o programa mencionado.

  • Uma transação pode ser concluída através de várias tarefas.

  • Uma tarefa pode receber dados de e enviar dados para o terminal que começou. Pode ler e escrever arquivos e pode começar outras tarefas também.

Tarefa vs. Transação

A diferença entre uma operação e uma tarefa é que vários usuários podem invocar uma transação, mas cada usuário inicia a sua própria tarefa.


LUW

LUW significa unidade lógica de trabalho. LUW afirma que um pedaço de trabalho deve ser feito completamente ou não feito. Uma tarefa pode conter vários unidade lógica de Obras no CICS. Nós falaremos mais sobre isso nos próximos módulos.


Aplicação

Um aplicativo é uma série de programas logicamente agrupados para formar várias transações, que é usado para completar uma tarefa específica para o usuário final.

uma

CICS - Núcleo

Os cinco componentes do sistema CICS descritas anteriormente são um agrupamento conveniente de programas de sistema CICS, cada um dos quais executa as suas próprias funções especializadas. O núcleo do CICS conhecido como o CICS Núcleo que consiste fornecidos pela IBM Tabelas programas de controle CICS e Controle.


Programas de controle

núcleo CICS é construído pelos programas de controle e tabelas de controle correspondentes. Ele oferece vantagens únicas. Ele faz com que o sistema CICS altamente flexível e, portanto, fácil de manter. A seguir estão os programas de controle importantes do CICS -

TCP

TCP é conhecido como Programa de Controle Terminal.

  • O TCP é usado para receber mensagens do terminal.

  • Ele mantém os requisitos de comunicação de hardware.

  • Pede CICS para iniciar as tarefas.

KCP

KCP é conhecido como Programa de Controle de tarefas.

  • KCP é usado para controlar, simultaneamente, a realização de tarefas e suas propriedades relacionadas.

  • Ele lida com todas as questões relacionadas com a multi-tasking.

PCP

PCP é conhecido como Programa de Controle de Programa.

  • PCP é utilizado para localizar e carregar programas para execução.

  • Ele transfere o controle entre os programas e, no final, ele retorna o controle para o CICS.

FCP

FCP é conhecido como Programa de Controle de Arquivo.

  • FCP é usado para fornecer programas de aplicação com serviços como read, insert, update ou excluir registros em um arquivo.

  • Ele mantém o controle exclusivo sobre os registros a fim de manter a integridade dos dados durante as atualizações de registro.

SCP

SCP é conhecido como Programa de Controle de armazenamento. Ele é usado para controlar a alocação e desatribuição de armazenamento dentro de uma região CICS.


Tabelas de controle

CICS consiste em programas de controle do CICS fornecidos pela IBM e tabelas. Estas tabelas precisam ser atualizados de acordo com as informações do aplicativo para a execução bem sucedida de programas aplicativos CICS. Seguem-se as tabelas de controle importantes -

TCT

TCT é conhecido como Tabela de Controle Terminal.

  • Quando acessar um terminal CICS, uma entrada é feita na tabela de TCT.

  • TCT contém a identificação de terminais que estão ligados à região CICS atual.

  • Programa de Controle Terminal juntamente com tabela de controle terminal de reconhecer os dados de entrada do terminal.

PCT

PCT é conhecido como Tabela controle do programa.

  • Ele contém os IDs de Transação (TRANSID) e os nomes de programas ou códigos de programa correspondente.

  • TRANSID é único na tabela PCT.

PPT

PPT é conhecido como Tabela programa de processamento. PPT contém o nome do programa ou nome Mapset, Task Use Counter, Linguagem, tamanho, endereço de armazenamento principal, Load endereço de biblioteca, etc.

  • Programa ou nome Mapset é único em uma tabela de PPT.

  • CICS recebe a transação e um nome de programa correspondente é alocado para a operação do PCT. Ele verifica se o programa está carregado ou não. Se ele é carregado, então o contador de uso tarefa é aumentado em 1. Se o programa não estiver carregado, então o programa é carregado pela primeira vez e o contador de uso tarefa é definido como 1. Ele obtém o endereço da biblioteca de carregamento da tabela de PPT.

FCT

FCT é conhecido como Tabela de Controle de Arquivo.

  • Ele contém nomes de arquivo, tipo de arquivo, tamanho do registro, etc.

  • Todos os arquivos usados ​​em um programa CICS deve ser declarado na FCT e eles são abertas e fechadas por si só CICS.


Transação

Quando um TP02 identificador de transação é inserido no terminal CICS, primeiro ele verifica se existe um programa associado a este identificador de transação na tabela de PCT. Se ele encontrar um, em seguida, ele verifica na tabela de PPT para encontrar a localização do programa para executá-lo.

Se o programa já está disponível na memória, ele começa a executar esse programa específico; se não, ele carrega o programa para a memória do armazenamento secundário e, em seguida, inicia sua execução.

Transação CICS

Ciclo de Vida Transação

O ciclo de vida de operação tem as seguintes etapas -

Ciclo CICS Transaction Vida

Passo 1

O operador do terminal inicia a transação digitando um 1 a 4 caracteres transaction-id e pressionando a tecla ENTER.

Passo 2

O TCP verifica periodicamente todos os terminais de entrada. Quando uma mensagem é recebida, acontece o seguinte -

  • Instrui o SCP para criar uma TIOA.

  • Coloca a mensagem na TIOA.

  • Passa o controle para a KCP.

Passo 3

A KCP assume o controle do TCP e faz o seguinte -

  • Valida a transação-id e segurança.

  • Instrui o SCP para criar uma área de controle de tarefas.

  • Atribui prioridade à tarefa com base na prioridade Terminal (Situado no TCT), a prioridade Operator (Situado no SNT), e prioridade de Transação (Situado no PCT).

  • Adiciona a tarefa para a fila de programas de espera.

  • Dispatches esperando programas na ordem de prioridade.

  • Passa o controle para o PCP.

passo 4

O PCP assume o controle da KCP e faz o seguinte -

  • Localiza o programa e carrega-o, se necessário.

  • Transfere o controle para o programa de aplicação.

passo 5

O programa de aplicação assume o controle do PCP e faz o seguinte -

  • Solicita ao TCP para colocar a mensagem em área de trabalho de armazenamento do programa.

  • Solicita ao FCP para recuperar registros dos arquivos.

passo 6

O FCP assume o controle do programa de aplicação e faz o seguinte -

  • Solicita uma área de trabalho do arquivo do SCP.

  • Informa o KCP que essa tarefa pode esperar até que o I / O está completa.

etapa 7

A KCP faz o seguinte -

  • Despacha a próxima tarefa na fila.

  • Re-despacha a tarefa de idade, quando I / O está completa.

  • Transfere o controle para o FCP.

passo 8

O FCP retorna o controle para o programa de aplicação.

passo 9

O programa aplicativo faz o seguinte -

  • Processa os dados do arquivo.

  • Solicita TCP para enviar uma mensagem de I / O.

  • Retorna o controle para o PCP.

passo 10

O PCP retorna o controle de volta ao KCP convidando-o a terminar a tarefa.

passo 11

A KCP instrui o SCP para libertar todo o armazenamento alocada para a tarefa (exceto TIOA).

passo 12

O TCP faz o seguinte -

  • Envia a saída para o terminal.

  • Solicita o SCP para liberar o TIOA.


CICS - Transações

transações CICS são usados ​​para executar várias operações na região do CICS. Iremos discutir as transações CICS importantes fornecidos pela IBM em detalhe.


CESN

CESN é conhecido como CICS Executam Sign On.

  • CESN é usado para assinar em para a região do CICS.

  • Precisamos oferecer o User-Id e senha dada pelo administrador do CICS para fazer logon no CICS. A figura abaixo mostra como a tela sign-on parece -

CICS CESN

CEDA

CEDA é conhecido como CICS executar Definição e Administração. Ele é usado por CICS administradores de sistema para definir entradas da tabela do CICS e outras atividades de administração.


CEMT

CEMT é conhecido como CICS Executar Terminal Mestre. Ele é usado para consultar e atualizar o status de ambientes CICS e também para outras operações do sistema.

  • Usando o comando CEMT, podemos gerenciar transações, tarefas, arquivos, programas, etc.

  • Para obter todas as opções possíveis, o tipo CEMT e pressione ENTER. Ele irá exibir todas as opções.

  • CEMT é basicamente usado para carregar um novo programa para o CICS ou para carregar uma nova cópia do programa para as CICS após o programa ou mapset é alterado.

Exemplo

Pode-se substituir o status do arquivo exibido para mudá-lo. Seguindo o exemplo mostra como fechar um arquivo -

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 é conhecido como CICS Executar comando intérprete. Muitos comandos do CICS podem ser executados usando CECI.

  • CECI é utilizado para verificar a sintaxe do comando. Ele executa o comando, apenas se a sintaxe está correta.

  • Digite a opção CECI na tela CICS vazia depois de ter logado. Dá-lhe a lista de opções disponíveis.

Exemplo

Seguindo o exemplo mostra como enviar dados de saída mapeados para terminal. Iremos discutir sobre MAPS nos próximos módulos.

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

CEDF

CEDF é conhecido como CICS Executar Debug Facility. Ele é usado para depurar o programa passo a passo, que ajuda a encontrar os erros.

Tipo CEDF e pressione enter na região do CICS. O terminal está em modo de mensagem FED será exibida. Agora digite o ID de transação e pressione a tecla Enter. Depois da iniciação, com cada tecla enter, uma linha é executada. Antes de executar qualquer comando CICS, que mostra a tela em que podemos modificar os valores antes de prosseguir.


CMAC

CMAC é conhecido como CICS Mensagens para códigos Abend. Ele é usado para encontrar a explicação e as razões para códigos CICS Abend.

Exemplo

Seguindo o exemplo mostra como verificar detalhes de um código Abend -

CMAC abend-code

CESF

CESF é conhecido como CICS Executar assinar. Ele é usado para assina fora da região do CICS.

Exemplo

Seguindo o exemplo mostra como fazer logoff da região do CICS -

CESF LOGOFF

CEBR

CEBR é conhecido como CICS Executar Navegar armazenamento temporário. É utilizado para exibir o conteúdo de uma fila de armazenagem temporária ou TSQ.

CEBR é usado durante a depuração para verificar se os itens da fila estão sendo gravados e recuperados corretamente. Vamos discutir mais sobre TSQ nos próximos módulos.

Exemplo

Seguindo o exemplo mostra como chamar o comando CEBR -

CEBR queue-id

Conceitos CICS

Cada comando pode ser conseguida através da execução de uma série de macros CICS. Vamos discutir algumas características básicas que irão ajudar-nos a compreender melhor os conceitos -

multitarefa

Esta característica do sistema operativo permite que mais do que uma tarefa a ser executados simultaneamente. A tarefa pode ser compartilhando o mesmo programa ou usando programas diferentes. Os horários CICS a tarefa na sua própria região.

Multi-threading

Esta característica de o sistema operativo permite que mais do que uma tarefa a ser executados simultaneamente partilhar o mesmo programa. Para multi-threading seja possível, um programa de aplicação deve ser um programa de re-entrantes no sistema operacional ou um quase-reentrada sob o CICS.

Reentrada

Um programa reentrante é um que não se modifique e pode voltar a entrar em si mesmo e continuar o processamento após uma interrupção pelo sistema operativo.

Quasi-reentrancy

Um programa de quasi-reentrada é um programa de re-entrantes em ambiente CICS. CICS garante reentrada através da aquisição de uma área de armazenamento exclusivo para cada tarefa. Entre os comandos CICS, o CICS tem o direito exclusivo de utilizar os recursos da CPU e pode executar outros comandos CICS de outras tarefas.

Há momentos em que muitos usuários estão simultaneamente usando o mesmo programa; isso é o que chamamos de multi-threading. Por exemplo, vamos supor que 50 usuários estão usando um programa A. Aqui, o CICS irá fornecer 50 armazenamento de trabalho para esse programa, mas um Procedimento Divisão. E esta técnica é conhecida como quase-reentrância.


CICS - Basics COBOL

programas CICS são escritos em linguagem COBOL em Mainframes. Iremos discutir sobre a escrita de um programa COBOL-CICS simples, compilá-lo, e depois executá-lo.


Programa CICS

Nós estaremos escrevendo um programa COBOL-CICS simples que mostra alguma mensagem na tela de saída CICS. Este programa é demonstrar as etapas envolvidas na execução de um programa COBOL-CICS. A seguir estão os passos para o código de um programa simples -

Passo 1

Entre para Mainframes e abrir uma sessão TSO.

Passo 2

Criar uma nova PDS em que será codificação nosso programa.

Passo 3

Criar um novo membro no interior do PDS e código o seguinte programa -

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.	 

passo 4

Após a codificação do programa, é preciso compilá-lo. Podemos compilar o programa com a seguinte 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)                                          
//

passo 5

Abrir uma sessão CICS.

passo 6

Vamos agora instalar o programa usando o comando a seguir -

CEMT SET PROG(HELLO) NEW.

etapa 7

Execute o programa usando a transação-id associado. Transaction-id é fornecido pelo Administrador. Ela vai mostrar a saída a seguir -

saída CICS

programa Compilation

O fluxograma a seguir mostra os passos utilizados na elaboração de um programa de COBOL-CICS -

CICS Compilation

Tradutor

A função de um tradutor é para verificar se há erros de sintaxe em comandos do CICS. Traduz-los em instruções COBOL equivalentes.

Compilador

A função de um compilador é expandir os livros de cópia COBOL. Ele compila o código depois de verificar o código-fonte para erros de sintaxe.

editor de ligação

A função de um editor de ligação é ligar diferentes módulos de objeto para criar um único módulo de carga.


CICS - BMS

BMS é conhecido como mapeamento de Suporte Básico. O pedido consiste de telas formatadas que atuam como uma ponte entre o terminal e os programas CICS. Para que ocorra comunicação entre o terminal e os programas CICS, usamos serviços de terminal de entrada / saída do CICS. Usamos BMS para criar designs de tela com posições e atributos adequados. Seguem-se as funções de BMS -

  • BMS atua como uma interface entre o terminal e os programas CICS.

  • O design eo formato da tela é separada da lógica da aplicação.

  • BMS faz com que o hardware aplicativo independente.


tela formatado

A tela mostrada abaixo é uma tela de menu e pode ser projetado usando BMS. Seus principais pontos são os seguintes -

  • A tela pode ter um título, data, e qualquer outra informação que é para ser exibido.

  • A Opção 1, 2 e 3 são os campos sem nome, que são os títulos da tela.

  • No campo Seleção, precisamos fornecer a entrada. Esta entrada é, então, enviada para o programa CICS para processamento adicional.

  • Na parte inferior do ecrã, teclas de acção são apresentados.

  • Todos os campos e a tela em si é definido com macros BMS. Quando todo o mapa é definida, podemos usar JCL para montá-lo.

tela CICS

Termos BMS básicas

Seguem-se os termos básicos que iremos utilizar nos próximos módulos -

Mapa

Mapa é um único formato de tela que pode ser projetado usando macros BMS. Ele pode ter nomes contendo 1 a 7 caracteres.

mapset

Mapset é um conjunto de mapas, que estão ligados entre si para formar um módulo de carga. Ela deve ter uma entrada PPT. Ele pode ter nomes de 1 a 7 caracteres.

BMS macros

BMS mapa é um programa que está escrito em linguagem assembly para gerenciar telas. Os três macros que são usados ​​para definir a tela são DFHMSD, DFHMDI e DFHMDF.

DFHMSD

DFHMSD macro gera definição Mapset. É identificador macro que mostra que estamos iniciando um mapset. O nome mapset é o nome do módulo de carga e uma entrada na tabela PPT devem estar presentes. A tabela a seguir mostra a lista de parâmetros que podem ser usados ​​em DFHMSD -

Sr. Não Parâmetro e Descrição
1

DIGITAR

Tipo é usado para definir o tipo de mapa. Se TYPE =
MAP - Mapa físico é criado
DSECT - mapa simbólico é criado
&& SYSPARM - Física e simbólica, ambos são criados
FINAL - para indicar o fim de um mapset codificação.

2

MODO

Modo é usado para indicar as operações de entrada / saída. Se o modo =
IN - Para um mapa de entrada única
OUT - Para um mapa de saída única
INOUT para entrada e saída de mapa

3

LANG

LANG = ASM / COBOL / PL1
Ele decide a linguagem da estrutura DSECT, para se copiar para o programa de aplicação.

4

ARMAZENAMENTO

Se STORAGE =
AUTO - Adquirir um mapa separado área simbólica para cada mapset
BASE - Para ter a mesma base de armazenamento para os mapas simbólicos de de mais de um mapset

5

CTRL

CRTL é usado para definir as solicitações de controle de dispositivo. Se CTRL =
FREEKB - Para desbloquear o teclado
FRSET - Para repor MDT ao status de zero
ALARME - Para definir um alarme em tempo de exibição da tela
PRINT - Para indicar a mapset para ser enviado para a impressora.

6

PRAZO

TERM = tipo garante a independência do dispositivo, necessário se diferente de 3270 terminal está sendo usado.

7

TIOAPFX

TIOAPFX = SIM / NÃO
SIM - Para reservar o espaço prefixo (12 bytes) para o BMS comandos para acessar TIOA corretamente. Necessária para o nível de comando CICS.

Exemplo

O exemplo a seguir mostra como codificar uma definição mapset -

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 macro gera definições de mapa. Isso mostra que estamos começando um novo mapa. MAPNAME é seguido pela macro DFHMDI. Mapname é usado para enviar ou receber mapas. A tabela a seguir apresenta os parâmetros que usamos dentro de uma macro DFHMDI -

Sr. Não Parâmetro e Descrição
1

TAMANHO

SIZE = (linha, coluna)
Este parâmetro dá o tamanho do mapa. BMS nos permite construir uma tela usando vários mapas, e este parâmetro torna-se importante quando estamos usando mais de um mapas em um único mapset.

2

LINHA

Ele indica o número da linha de partida do mapa.

3

COLUNA

Ele indica o número da coluna inicial do mapa.

4

JUSTIFICAR

É usado para especificar o mapa inteiro ou os campos do mapa a ser justificada para a esquerda ou direita.

5

CTRL

CRTL é usado para definir as solicitações de controle de dispositivo. Se CTRL =
FREEKB - Para desbloquear o teclado
FRSET - Para repor MDT ao status de zero
ALARME - Para definir um alarme em tempo de exibição da tela
PRINT - Para indicar o mapa para ser enviado para a impressora

6

TIOAPFX

TIOAPFX = SIM / NÃO

SIM - Para reservar o espaço prefixo (12 bytes) para o BMS comandos para acessar TIOA corretamente. Necessária para o nível de comando CICS.

Exemplo

O exemplo a seguir mostra como codificar uma definição mapa -

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

DFHMDF

DFHMDF macro é usado para definir nomes de campo. O nome do campo é mencionado contra o qual macro DFHMDF está codificada. Este nome campo é usado dentro do programa. Nós não escrever o nome de campo de encontro ao campo constante que nós não queremos usar dentro do programa. A tabela a seguir mostra a lista de parâmetros que podem ser usados ​​dentro de um macro DFHMDF -

Sr. Não Parâmetro e Descrição
1

POS

Esta é a posição na tela onde o campo deve aparecer. Um campo começa com o byte de atributo, por isso, se você codificar POS = (1,1), o byte de atributo para esse campo é na linha 1 na coluna 1, e os dados reais começa na coluna 2.

2

COMPRIMENTO

Este é o comprimento do campo, não contando com o byte de atributo.

3

INICIAL

Estes são os dados de caracteres para um campo de saída. Nós usamos isso para especificar rótulos e títulos para a tela e mantê-los independente do programa. Para o primeiro campo na tela de menu, por exemplo, vamos código: = INICIAIS "Menu".

4

JUSTIFICAR

É usado para especificar o mapa inteiro ou os campos do mapa a ser justificada para a esquerda ou direita.

5

ATTRB

ATTRB = (ASKIP / PROT / UNPROT, NUM, BRT / NORM / DRK, IC, FDefina) Ele descreve os atributos de campo.

ASKIP - AUTOSKIP. Os dados não podem ser inseridos neste campo. O cursor salta para o campo seguinte.

PROT - Campo protegido. Os dados não podem ser inseridos neste campo. Se os dados são inseridos, ele fará com que o status de entrada de bloqueio de.

UNPROT - campo desprotegido. Os dados podem ser introduzidos e este é usado para todos os campos de entrada.

NUM - Campo numérico. Somente números (0 a 9) e caracteres especiais (e '.' '-') São permitidos.

BRT - exibição brilhante de um campo (realce).

NORM - Apresentação normal.

DRK - visor escuro.

IC - Inserir cursor. O cursor será posicionado neste campo. No caso, IC é especificado mais de uma vez, o cursor é colocado no último campo.

FDefina - Campo definido. MDT é activada de forma a que os dados do campo é para ser enviado a partir do terminal para o computador anfitrião, independentemente de se o campo é realmente modificado pelo utilizador.

6

Pičín

Pičín aplica-se ao campo de dados, que é usado como entrada como Pičín = 9 (8).

7

PICOUT

Pičín aplica-se ao campo de dados, que é utilizado como uma saída como PICOUT = Z (8).

Exemplo

O exemplo a seguir mostra como codificar uma definição de campo -

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 recebe os dados inseridos pelo usuário e, em seguida, formata-lo em um mapa simbólico área. O programa de aplicação tem acesso somente aos dados presentes no mapa simbólico. O programa de aplicação processa os dados e a saída é enviada para o mapa simbólico. BMS irá mesclar a saída dos dados simbólicos com o mapa físico.

CICS MAPS

Mapa físico

Mapa físico é um módulo de carga na biblioteca de carga que contém informações sobre como o mapa deve ser exibido.

  • Ele contém os detalhes sobre os atributos de todos os campos no mapa e as suas posições.

  • Ele contém o formato do mapa para um dado terminal de vídeo.

  • Ele é codificado usando macros BMS. É montado separadamente e ligação editado na biblioteca CICS.


simbólica Mapa

Um mapa simbólico é um livro de cópia na biblioteca. O livro de cópia é usado pelo programa aplicativo CICS para enviar e receber dados a partir do terminal.

  • Ele contém todos os dados variável que é copiado para a seção WORKINGSTORAGE do programa.

  • Ele tem todos os campos nomeados. O programador aplicativo usa esses campos para ler e escrever dados no mapa.


Skipper e do bujão do Campo

Para uma desprotegida campo nomeado, em um mapa, se tiver especificado um comprimento de 10, isso significa que o campo de nome pode assumir valores cujo comprimento não pode exceder 10. Mas quando você mostrar este mapa usando CICS e começar a introduzir os valores para este campo em a tela, que pode inserir mais de 10 caracteres, isto é, até que a extremidade da tela e que pode entrar até a próxima linha. Para evitar isso, usamos campo Skipper ou campo rolha. Um campo Skipper geralmente seria um campo de nome de comprimento 1, especificado após um campo chamado.

CICS Skipper & Stopper campo

Skipper campo

Se colocarmos um campo skipper após o campo desprotegido nomeado, em seguida, ao introduzir o valor, uma vez que o comprimento especificado for atingido, o cursor se posiciona automaticamente para o próximo campo desprotegido. O exemplo a seguir mostra como adicionar um campo skipper -

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

Stopper campo

Se colocarmos uma rolha de campo após o chamado campo desprotegido, em seguida, durante a introdução do valor, uma vez que o comprimento especificado for atingido, o cursor vai parar o seu posicionamento. O exemplo a seguir mostra como adicionar um campo rolha -

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

Byte atributo

O byte de atributo de qualquer campo armazena informações sobre as propriedades físicas do campo. O diagrama a seguir ea tabela explicar o significado de cada bit.

CICS Byte Atributo
bit Position Descrição Configurações bit
0 & 1 Determinado pelo conteúdo do bit 2 a 7
2 & 3 Protecção & Deslocamento 00 - alfanumérico Desprotegido
01 - Desprotegido Numérico
10 - Protegido Parar
11 - Protegido Skip
4 & 5 Intensidade 00 - normal
01 - normal
10 - Brilhante
11 - Não-display (escuro)
6 Deve ser zero sempre
7 Modificada Tag Dados 0 - O campo não foi modificado
1 - Campo foi modificado

Modificada Tag Dados

Dados de modificação Tag (MDT) é o último bit do byte de atributo.

  • MDT é uma bandeira que detém um único bit. É especifica se o valor é para ser transferida para o sistema ou não.

  • Seu valor padrão é 1, quando o valor do campo é alterado.

  • Se MDT é 0, em seguida, os dados não podem ser transferidos; e se MDT é 1, então os dados podem ser transferidos.


Enviar Mapa

As envio gravações comando MAP formatado saída para o terminal. Ele é utilizado para enviar o mapa para o terminal do programa de aplicação. O segmento de código a seguir mostra como enviar um mapa para o terminal -

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

A tabela a seguir lista os parâmetros usados ​​em um comando de envio mapa, juntamente com o seu significado.

Sr. Não Parâmetro e Descrição
1

Mapa-name

É o nome do mapa que deseja enviar. É obrigatório.

2

Mapset-name

É o nome do conjunto de mapas que contém o mapname. O nome mapset é necessário a menos que seja o mesmo que o nome do mapa.

3

A PARTIR DE

Ele é usado, se decidimos usar um nome DSECT diferente, devemos usar a opção FROM (DSECT-name), juntamente com o comando SEND MAP.

4

maponly

Isso significa que não há dados de seu programa é para ser incorporado ao mapa e apenas a informação no mapa é transmitido.

5

dataonly

É o inverso lógico de maponly. Vamos utilizá-lo para modificar os dados variáveis ​​em uma exibição que já foi criado. Apenas os dados do seu programa é enviado para a tela. As constantes no mapa não são enviados.

6

APAGAR

Isso faz com que a tela inteira para ser apagado antes que estamos enviando é mostrado.

7

ERASEUP

Isso faz com que apenas os campos desprotegidos a ser apagada.

8

FRSET

Bandeira Redefinir desliga o tag de dados modificado no byte de atributo para todos os campos na tela antes que você está enviando é colocado lá.

9

CURSOR

Ele pode ser usado para posicionar o cursor no ecrã do terminal. O cursor pode ser ajustada movendo -1 para a parte G do campo e, em seguida, enviando o mapa.

10

ALARME

Isso faz com que o alarme sonoro seja soou.

11

FREEKB.

O teclado é desbloqueado se especificar FREEKB em qualquer mapa ou o comando SEND.

12

IMPRESSÃO

Isso permite que a saída de um comando de envio seja impressa numa impressora.

13

formfeed

Isso faz com que a impressora para restaurar o papel para a parte superior da página seguinte, antes da saída é impresso.


Receba Mapa

Quando queremos receber entrada a partir de um terminal, usamos o comando RECEBER MAP. Os parâmetros MAP e MapSet têm exatamente o mesmo significado que para o comando SEND MAP. O segmento de código a seguir mostra como receber um mapa -

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

Execução mapset

Os seguintes passos são necessários para desenvolver e executar um mapset -

  • Passo 1 - Abra uma sessão do TSO.

  • Passo 2 - Criar uma nova PDS.

  • Passo 3 - Código de mapset em um novo membro de acordo com a exigência.

  • Passo 4 - Monte o mapset usando o JCL fornecido pelo administrador do CICS.

  • Passo 5 - Abra uma sessão CICS.

  • Passo 6 - Instale o programa usando o comando -

    CEMT SET PROG (mapset-name) NEW

  • Passo 7 - Digite o seguinte comando para enviar o mapa para o terminal -

    CECI ENVIAR MAP (mapa-name) MAPSET (mapset-name) FREEKB ERASE


CICS - Bloco de Interface

Qualquer programa de aplicação exigiria uma interface para interagir com o CICS. BEI (Executar interface Block) atua como uma interface para permitir que programas aplicativos se comunicar com o CICS. BEI contém a informação necessária durante a execução de um programa.


Verbos COBOL restritos

Enquanto a codificação de um programa CICS, não podemos usar os comandos que retornam o controle diretamente para o MVS. Se codificar esses verbos COBOL, não vai dar qualquer erro de compilação, mas podemos obter resultados imprevisíveis. A seguir estão os verbos COBOL que não devem ser utilizados em um programa CICS -

  • / S de arquivos declarações como abrir, ler, escrever, reescrever, fechar, excluir e Iniciar. Todos os arquivos I / O no CICS é tratada pelo módulo de controle de arquivo e eles têm o seu próprio conjunto de afirmações como LER, ESCREVER, regravar e DELETE que vamos discutir nos próximos módulos.

  • Ficheiro de secção e Ambiente não é necessária.

  • COBOL instruções que invocam funções do sistema operacional como o Aceitar, data / hora não pode ser usado.

  • Não use DISPLAY, MERGE, PARE RUN, e voltar.


Executar Bloco de Interface

Executar Bloco de Interface (BEI) é um bloco de controle, que é carregado automaticamente pelo CICS para cada programa.

  • A BEI é única de uma tarefa e que existe para a duração da tarefa. Ele contém um conjunto de informações relacionadas sistema correspondente à tarefa.

  • Ele contém informações sobre identificador de transacção, hora, data, etc, que é usado pelo CICs durante a execução de um programa de aplicação.

  • Cada programa que executa como parte da tarefa tem acesso à mesma BEI.

  • Os dados no BEI em tempo de execução pode ser visto através da execução do programa no modo CEDF.


BEI Campos

A tabela a seguir fornece uma lista de campos que estão presentes no BEI -

BEI campo PIC Cláusula Descrição
EIBAID X (1) tecla de auxílio Pressionado
EIBCALEN S9 (4) COMP Ele contém um comprimento de DFHCOMMAREA
EIBDATE S9 (7) COMP-3 Ele contém Sistema Atual Data
EIBRCODE X (6) Ele contém o código de retorno da última transação
EIBTASKN S9 (7) COMP-3 Ele contém o número de tarefas
EIBTIME S9 (7) COMP-3 Ele contém Sistema A hora
EIBTRMID X (4) Identificador Terminal
EIBTRNID X (4) Identificador de transação

CICS Programas Classificação

Programas CICS são classificados nas três categorias a seguir que iremos discutir um por um -

  • Programas Não conversação
  • Programas de conversação
  • Programas pseudo-conversação - Vamos discutir no próximo módulo

Programas Não conversação

Durante a execução de programas não-conversação, sem intervenção humana é necessária. Todos os insumos necessários são fornecidos quando o programa é iniciado.

  • Eles são semelhantes aos programas em lotes que são executados no modo de lote. Assim, em CICS, eles raramente são desenvolvidos.

  • Podemos dizer que eles são usados ​​apenas para a exibição de uma sequência de telas em intervalos regulares de tempo.

Exemplo

O exemplo a seguir mostra um programa não-conversação que simplesmente exibir "OLÁ MUNDO" no terminal CICS como saída -

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.

Programa de conversação

O envio de uma mensagem para o terminal e receber uma resposta do utilizador é chamado uma conversa. Uma aplicação on-line alcança uma conversa entre o usuário eo programa de aplicação por um par de SEND e comando RECEBER. Os pontos-chave de um programa de conversação são os seguintes -

  • O sistema envia uma mensagem para a tela e aguarda a resposta do usuário.

  • O tempo gasto pelo usuário para responder é conhecida como Think Time. Este tempo é consideravelmente elevada, o que é uma grande desvantagem de programas de conversação.

  • O usuário fornece as informações necessárias e pressiona uma tecla AID.

  • A aplicação processa a entrada do usuário e envia a saída.

  • O programa é carregado na memória principal no início e é mantida até que a tarefa termina.

Programa de Conversão CICS

Exemplo

O exemplo a seguir mostra um programa de conversão que leva a entrada do usuário e, em seguida, simplesmente exibe a mesma entrada no terminal CICS como saída -

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 - Programação Pseudo

A partir de agora, nós cobrimos não-conversão e programas de conversão. Programas de conversão tem uma grande desvantagem como o seu tempo de reflexão é consideravelmente alta. Para ultrapassar este problema, a programação pseudo-conversão entrou em cena. Vamos agora discutir mais sobre os programas pseudo-conversão.


Programa de pseudo-Conversão

A seguir está a sequência de eventos que ocorrem em um programa de pseudo-conversion -

  • Passo 1 - O sistema envia uma mensagem para a tela e termina a transação, especificando a transação a ser iniciado quando a entrada do usuário é recebido.

  • Passo 2 - O sistema aloca os recursos usados ​​por esta transação para outras transações em execução no sistema. Assim, podemos utilizar os recursos em um programa de pseudo-conversão até o usuário dá a entrada.

  • Passo 3 - O sistema controla a entrada do terminal em intervalos regulares de tempo. Quando a entrada é recebido, ele é processado e a saída é exibida.

  • Passo 4 - O programa de aplicação é carregado para a memória principal quando necessário e libertado quando não estiver em uso.

Programa CICS Pseudo Conversão

Técnicas Pseudo de Conversão

O ponto importante a observar na pseudo-conversação está passando de dados entre cada tarefa. Vamos discutir sobre as técnicas para a passagem de dados.

COMMAREA

COMMAREA é conhecida como a área de comunicação. COMMAREA é usado para transmitir dados entre tarefas. O exemplo a seguir mostra como passar COMMAREA onde WSCOMMAREA e WS-COMMAREA de comprimento são declarados na secção de armazenamento de Trabalho -

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

DFHCOMMAREA

DFHCOMMAREA é uma área de memória especial, que é fornecido por CICS para cada tarefa.

  • Ele é usado para transmitir dados de um programa para outro programa. Os programas podem existir na mesma operação ou em diferentes transação também.

  • É declarado na seção Linkage do programa em 01 de nível.

  • Ele deve ter a mesma cláusula foto como WS-COMMAREA.

  • Os dados podem ser movidos de volta de DFHCOMMAREA para WS-COMMAREA usando uma instrução MOVE.

MOVE DFHCOMMAREA TO WS-COMMAREA.

Exemplo

Após o envio do mapa, a tarefa termina e aguarda a resposta do usuário. Nesta fase, os dados precisam ser salvas, porque, embora a tarefa tenha terminado, a operação não tem. Quando esta operação está a ser retomada, uma vez que exigiria o estado antes da tarefa. O usuário digita a entrada. Isto tem agora a ser recebido pelo comando RECEBER MAP e então validado. O exemplo a seguir mostra como declarar COMMAREA e DFHCOMMAREA -

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

Pseudo-código

Dada a seguir é a lógica do código pseudo que usamos na programação pseudo -

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

Exemplo

O exemplo a seguir mostra um programa pseudo-conversion -

******************************************************************
* 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.       

Vantagens da Pseudo Conversão

Seguem-se as vantagens da conversão de pseudo -

  • Os recursos são melhor utilizados. Os recursos são liberados assim que o programa é suspenso temporariamente.

  • Parece que ele está em modo de conversação.

  • Ele tem melhor tempo de resposta.


Demonstrações de retorno

Seguem-se os dois tipos de instruções de retorno que são usadas no CICS -

Return-1

Quando a seguinte instrução de retorno incondicional é emitido, a tarefa ea transação (programa) é encerrado.

EXEC CICS RETURN 
END-EXEC.

Voltar-2

Quando a seguinte retorno condicional, ou seja, voltar com a declaração TRANSID é emitido, o controle retorna ao CICS com a próxima transid a ser executada. A próxima transação inicia quando o usuário pressiona uma tecla AID.

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

CICS - Chaves de ajuda

Como já discutimos em módulos anteriores, chaves SOCORROS são conhecidos como a atenção Identificador Keys. CICS pode detectar apenas as chaves AID. Depois de digitar todas as entradas, somente quando o usuário pressiona uma das teclas de auxílio, o CICS assume o controle. Chaves SOCORROS incluem ENTER, PF1 a PF24, PA1 a PA3 e CLEAR.


Validando chaves SOCORROS

A tecla pressionada pelo usuário é verificado com EIBAID.

  • EIBAID é um byte de comprimento e contém o valor identificador de atenção real usado no fluxo 3270 de entrada.

  • CICS fornece-nos com um conjunto pré-codificado de variáveis ​​que podem ser usados ​​no programa de aplicação, escrevendo a seguinte declaração -

    COPY DFHAID


DFHAID

DFHAID é um caderno que é usado em programas de aplicação para incluir CICS pré-codificado conjunto de variáveis. O conteúdo a seguir está presente no caderno 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 '<'.   

Exemplo

O exemplo a seguir mostra como usar DFHAID caderno em um programa de aplicação -

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.

Posicionamento do cursor

Há duas maneiras para substituir a posição especificada na definição de mapa.

  • Uma maneira é para especificar a posição relativa de tela para a linha e número de coluna na opção de cursor sobre o comando de envio mapa.

  • Outra maneira é mover -1 à variável mapa simbólico sufixo L. Em seguida, enviar o mapa com uma opção de cursor no MAP SEND.

Exemplo

O exemplo a seguir mostra como substituir a posição do cursor para o campo Nome -

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

Dinamicamente Modificando Atributos

Durante o envio de um mapa, se quisermos ter atributos diferentes para um campo diferente do que é especificado no mapa, então podemos substituir essa definindo o campo no programa. A seguir é a explicação para substituir atributos de um campo -

  • Para substituir os atributos de um campo, devemos incluir DFHATTR no programa de aplicação. Ele é fornecido pelo CICS.

  • O atributo obrigatório pode ser escolhido a partir da lista e se mudou para a variável campo simbólico com o sufixo 'A'.

DFHATTR detém o seguinte conteúdo -

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 - Controle de Arquivo

CICS nos permite acessar dados de arquivos de várias maneiras. A maioria dos acessos de arquivo são aleatórios no sistema on-line como as operações a serem processadas não são agrupadas e classificadas em qualquer tipo de ordem. Portanto CICS suporta os métodos de acesso directo do costume - VSAM e DAM (Método de Acesso Direto). Ele também nos permite acessar os dados usando os gerentes de banco de dados.


Acesso aleatório

A seguir estão os comandos que são utilizados para o processamento aleatório -

Sr. Não Comandos e Descrição
1 LER

comando READ lê dados de um arquivo usando a chave primária.

2 ESCREVA

comando de escrita é usado para adicionar novos registros para um arquivo.

3 REESCREVER

REWRITE comando é utilizado para modificar uma ficha que já está presente num ficheiro.

4 EXCLUIR

comando DELETE é usado para apagar um registro que está presente em um arquivo.


Acesso sequencial

A seguir estão os comandos que são utilizados para o processamento sequencial -

Sr. Não Comandos e Descrição
1 STARTBR

STARTBR é conhecido como navegação começo.

2 READNEXT / READPREV

Quando emitir um comando STARTBR, não faz os registros disponíveis.

3 RESETBR

O comando RESETBR nos permite redefinir o nosso ponto de partida no meio de uma procura.

4 ENDBR

Quando terminar de ler um arquivo sequencialmente, nós encerrar o browse usando o comando ENDBR.


CICS - Tratamento de erros

Existem muitos tipos de abends e erros que alguém pode enfrentar ao usar um aplicativo CICS. Erros podem surgir devido ao hardware de problemas de software. Iremos discutir sobre erros e tratamento de erros neste módulo.


Erros CICS

A seguir estão os erros CICS que podem surgir durante a execução de aplicações CICS -

  • Alguns erros CICS esperados surgir quando as condições não são normais no sistema CICS. Por exemplo, se estamos a ler um determinado registro e o registro não for encontrado, então ficamos com a "Not Found" erro. Mapfail é um erro semelhante. Erros nesta categoria são tratados pela lógica explícita no programa.

  • erros lógicos surgir devido a algumas razões, como a divisão por zero, caráter ilegal em campo numérico, ou erro ID de transação.

  • Erros relacionados ao hardware ou outras condições do sistema estão além do controle de um programa de aplicação. Por exemplo, recebendo erro de entrada / saída ao acessar um arquivo.


Comandos tratamento de erros

CICS fornece vários mecanismos para identificar os erros e lidar com eles em nossos programas. A seguir estão os comandos que são usados ​​para lidar com os erros do CICS esperados -

Sr. Não Manipulação de Comandos e Descrição
1 condição handle

condição identificador é utilizado para transferir o controlo do programa para um ponto ou uma etiqueta procedimento.

2 lidar com Abend

Se um programa abends devido a algumas razões, como erro de entrada-saída, então ele pode ser manipulado usando Handle comando Abend CICS.

3 abend

comando Abend é usado para terminar a tarefa intencionalmente.

4 ignorar Condição

Ignorar condição é usada quando queremos nenhuma ação a ser tomada se um abend ou erro específico acontece que é mencionado no interior do Estado ignorar.

5 Nohandle

Nohandle pode ser especificado para qualquer comando CICS.


CICS - Operações de Controle

CICS Programa de Controle de Programa (PCP) gere o fluxo de programas de aplicação. Todos os programas de aplicação deve ter uma entrada na Tabela de programa de processamento. A seguir estão os comandos que são utilizados para os serviços de controle do programa -

  • XCTL
  • Ligação
  • Carga
  • Lançamento
  • Retorna

Níveis Lógicos programa

Os programas aplicativos que executam sob CICS tem vários níveis lógicos. O primeiro programa que recebe o controle diretamente está no nível mais alto lógico, ou seja, nível 1. O programa ligado está no nível lógico seguinte do programa de ligamento. Os programas XCTL executar no mesmo nível. Será claro quando vamos passar por Link e XCTL, mais adiante neste módulo. A imagem seguinte mostra os níveis lógicos -

Operações de Controle do CICS

XCTL

A explicação fundamental da XCTL é como se segue -

  • comando XCTL é usado para passar o controle de um programa para outro no mesmo nível.

  • Ele não espera que o controle de volta.

  • É semelhante ao IR PARA comunicado.

  • Um programa XCTL pode ser uma pseudo-conversação.

Exemplo

O exemplo a seguir mostra como usar o comando XCTL para passar o controle para outro programa -

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.

Este comando transfere o controle seja passado para programar 'PROG2' com 100 bytes de dados. COMMAREA é um parâmetro opcional e é o nome da área que contém os dados a ser transmitida ou a área em que os resultados são para ser devolvido.


Ligação

comando de ligação é usado para transferir o controle para outro programa a nível inferior. Ele espera que o controle de volta. Um programa ligado não pode ser pseudo-conversacional.

Exemplo

O exemplo a seguir mostra como usar o comando Link para passar o controle para outro programa -

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.

Carga

comando de carregamento é usada para carregar um programa ou uma mesa. A seguir está a sintaxe do comando Load -

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

Lançamento

comando release é usado para liberar um programa ou uma tabela. A seguir está a sintaxe do comando Release -

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

Retorna

comando de retorno é usado para retornar o controle para o próximo nível mais alto lógico. A seguir está a sintaxe do comando Return -

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

Operações de Controle de intervalo

As operações de controlo de intervalo são um dos dois tipos seguintes -

ASKTIME

ASKTIME é utilizado para solicitar para o tempo atual e data ou carimbo do tempo. Passamos então esse valor para a variável de armazenamento de trabalho dentro do programa. A seguir está a sintaxe do comando ASKTIME -

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

FORMATTIME

FORMATTIME formata o timestamp para o formato necessário com base nas opções, que pode ser YYDDD, YYMMDD, ou YYDDMM para a data. DATESEP indica o separador para a data como faz a variável TIMESEP para TIME. A seguir está a sintaxe do comando 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 - Armazenamento Temporário

Existem diferentes almofadas de raspadinhas que estão disponíveis no CICS para guardar dados ou para transferir os dados entre as transações. Há cinco áreas de armazenamento que são fornecidos por CICS, que iremos discutir neste módulo.


COMMAREA

O COMMAREA se comporta como um bloco de rascunho que pode ser usado para transmitir dados de um programa para outro programa, seja dentro da mesma transação ou de diferentes transações. Deve ser definido na seção de ligação usando o nome DFHCOMMAREA.


Área de trabalho comum

Qualquer operação na região do CICS pode acessar área de uso comum e, portanto, o formato e o uso dele deve ser acordado por todas as operações no sistema que decide usá-lo. Há apenas um CWA na região CICS inteiro.


Área de Trabalho Transação

Transação área de trabalho é usado para transmitir dados entre os programas aplicativos que são executados com na mesma transação. TWA existe apenas para a duração de operação. Seu tamanho é definido na Tabela de controle de programa.


Fila de armazenamento temporário

Temporary fila de armazenamento (TSQ) é um recurso que é fornecido pelo Programa de Controle de armazenamento temporário (TSP).

  • A TSQ é uma fila de registros que podem ser criados, lidos e apagados por diferentes tarefas ou programas na mesma região CICS.

  • Um identificador de fila é utilizado para identificar TSQ.

  • Um registro dentro de um TSQ é identificado pela posição relativa conhecido como o número do item.

  • Os registros em TSQ, permanece acessível até que todo o TSQ é excluído explicitamente.

  • Os registros em TSQ pode ser lido sequencialmente ou diretamente.

  • TSQs pode ser escrita no armazenamento principal ou a memória auxiliar na DASD.


WRITEQ TS

Este comando é usado para adicionar itens a uma TSQ existente. Além disso, podemos criar uma nova TSQ usando este comando. A seguir está a sintaxe do comando WRITEQ TS -

Sintaxe

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

A seguir estão os detalhes dos parâmetros utilizados no comando WRITEQ TS -

  • A fila é identificada pelo nome que é mencionado neste parâmetro.

  • FROM e opções de comprimento são usadas para especificar o registo que está a ser escrito para a fila e seu comprimento.

  • Se a opção ITEM for especificado, CICS atribui um número de item para o registro na fila, e define a área de dados fornecidos em que opção para o número do item. Se o registro começa uma nova fila, o número do item atribuído é 1 e números dos itens subsequentes seguem em sequência.

  • A opção de reescrita é utilizado para actualizar um registo já presentes na fila.

  • opção MAIN / AUXILIAR é usado para armazenar os registros no armazenamento principal ou auxiliar. O padrão é auxiliar.


READQ TS

Este comando é usado ler a fila de armazenamento temporário. A seguir está a sintaxe do READQ TS -

Sintaxe

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

deleteq TS

Este comando é usado excluir a fila de armazenamento temporário. A seguir está a sintaxe do deleteq TS -

Sintaxe

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

Transient fila de dados

Transitória de dados da fila é de natureza transitória, uma vez que podem ser criados e excluídos rapidamente. Ele permite apenas o acesso sequencial.

  • O conteúdo da fila pode ser lido apenas uma vez como ele é destruído uma vez por leitura é realizada e, portanto, o nome de transientes.

  • Ele não pode ser atualizado.

  • Ele requer uma entrada na DCT.


WRITEQ TD

Este comando é usado para escrever filas de dados transitórios e são sempre gravados em um arquivo. A seguir está a sintaxe do comando TD WRITEQ -

Sintaxe

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

READQ TD

Este comando é usado ler a fila de dados transientes. A seguir está a sintaxe do READQ TD -

Sintaxe

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

deleteq TD

Este comando é usado eliminar a fila de dados transientes. A seguir está a sintaxe do deleteq TD -

Sintaxe

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

CICS - Intercomunicação

A comunicação mútua que ocorre entre dois ou mais sistemas é conhecido como a intercomunicação.


Benefícios de intercomunicação

Os benefícios importantes de intercomunicação são os seguintes -

  • Nós não precisamos para replicar os dados em todos os sistemas.

  • Os usuários não precisam realizar conexões para vários sistemas para acessar os dados armazenados neles.

  • Além disso, melhora o desempenho da aplicação.


Terminologias básicas

É preciso ter um conhecimento de terminologias básicos utilizados no sistema CICS. Seguem-se os termos básicos -

Sistema local

Um sistema local é um sistema que inicia um pedido de intercomunicação.

local Resource

Um recurso local é um recurso que se encontra no sistema local.

Sistema remoto

Um sistema remoto é um sistema que é iniciado na sequência de uma solicitação de intercomunicação.

recurso remoto

Um recurso remoto é um recurso que se encontra no sistema remoto.

MVS Sysplex

MVS Sysplex é uma configuração de vários sistemas operacionais MVS. Eles trabalham como um único sistema através da partilha de funções e programas.

CICSPlex

CICSPlex é comumente descrito como um conjunto de regiões CICS interligados que processam a carga de trabalho do cliente. A CICSPlex é um conjunto de regiões interconectadas CICS que possuem terminais, aplicações, recursos, etc.


Métodos de comunicação

Há duas maneiras em que CICS pode se comunicar com outros sistemas -

  • MRO - multi região de operação é usado quando duas regiões CICS dentro do mesmo MVSPLEX precisa se ​​comunicar uns com os outros.

  • ISC - Inter Sistema de Comunicação é utilizado quando uma região CICS em um servidor local tem para se comunicar com uma região CICS no servidor remoto.


CICS - Códigos de status

Ao trabalhar com CICS, você pode encontrar abends. A seguir estão os códigos de abend comuns com sua descrição que irá ajudá-lo a resolver os problemas -

Sr. Não Código e Descrição
1

ASRA

Programa Check Exception

2

AEI0

Erro do Programa ID

3

AEI9

condição Mapa falha

4

AEIO

Duplicate Key

5

Aein

Duplicar Registro

6

AEID

Fim de arquivo alcançado

7

AEIS

Arquivo não está aberto

8

AEIP

condição solicitação inválida

9

AEY7

Não autorizado a usar o recurso

10

APCT

Programa não encontrado

11

CCPA

Conjunto de dados não encontrado

12

AKCT

Erro de tempo esgotado

13

ABM0

mapa especificado não foi encontrado

14

AICA

Programa em loop infinito

15

Aaow

erro de lógica interna