Manual Cics (Dimcic21)

download Manual Cics (Dimcic21)

of 164

Transcript of Manual Cics (Dimcic21)

  • 7/28/2019 Manual Cics (Dimcic21)

    1/164

    | || || || || || || || || |

    | || || || || || || || || C I C S / M V S || || || (Customer Information Control System / Multiple Virtual Storage) || || |

    | Verso 2.1.1 || || || || || || || || || || || || || || |

  • 7/28/2019 Manual Cics (Dimcic21)

    2/164

    S U M R I O

    IntroduoCICS/MVS (Customer Information Control System /

    Multiple Virtual Storage) ....................................... 1Conveno ................................................................ 2

    Organizao do SistemaViso global das tabelas e mdulos de gerncia do CICS/MVS ............... 3

    Componentes do CICS/MVSMdulos de gerncia do CICS/MVS ........................................ 4Tabelas internas do CICS/MVS ........................................... 5reas internas do CICS/MVS ............................................. 6Blocos de Controle do CICS/MVS ......................................... 6

    Fluxo de transao do CICS/MVS ........................................... 7Restries do PL/I sob o CICS/MVS .......................................... 19Tamanho de Programa ...................................................... 20Tamanho da rea de Trabalho .............................................. 20

    O N E R R O R S Y S T E M .............................................. 21Exemplo de uma aplicao CICS/MVS .......................................... 23Execution Interface Block (EIB) ............................................ 27Formato de um comando CICS/MVS no PL/I ..................................... 29Conveno para Codificao de um comando CICS/MVS no PL/I .................. 30

    Manipulao de Erro de Comandos CICS/MVSCondies de Exceo ..................................................... 31H A N D L E C O N D I T I O N ......................................... 32H A N D L E C O N D I T I O N E R R O R ............................ 35I G N O R E C O N D I T I O N ......................................... 36O p o N O H A N D L E ............................................. 37O p o R E S P ..................................................... 38

    Controle de TerminalMdulo de Controle de Terminal (TCP) ..................................... 41R E C E I V E ............................................................ 44S E N D .................................................................. 50

    Controle de ProgramaMdulo de Controle de Programa (PCP) ..................................... 53R E T U R N .............................................................. 55L I N K .................................................................. 56

    X C T L .................................................................. 59L O A D .................................................................. 62R E L E A S E ............................................................ 64Transao conversacional ................................................. 65Transao Pseudo-conversacional .......................................... 66R E T U R N T R A N S I D .............................................. 67A B E N D ................................................................ 70

    Dados TransitriosConceitos de Dados Transitrios .......................................... 71Filas de Dados Transitrios .............................................. 72Destinos de Extrapartio ................................................ 72Destinos de Intrapartio ................................................ 73Iniciao de Transao Autom tica ........................................ 74W R I T E Q T D ........................................................ 76R E A D Q T D .......................................................... 78D E L E T E Q T D ...................................................... 80

  • 7/28/2019 Manual Cics (Dimcic21)

    3/164

    Memria Tempor riaRegistro de Memria Tempor ria ........................................... 81W R I T E Q T S ........................................................ 83R E A D Q T S .......................................................... 85D E L E T E Q T S ...................................................... 86

    Requisio de data e hora no CICS/MVSA S K T I M E ............................................................ 87F O R M A T T I M E ...................................................... 88

    Mapas

    BMS (Basic Mapping Support) .............................................. 93Independncia de Equipamento ............................................. 94Independncia de Formato ................................................. 95Mapas Fsicos ............................................................ 95Mapas Simblicos ......................................................... 95Formato de Campo (FIELD) ............................................... 95Formato de Bloco ....................................................... 96Formato de Texto ....................................................... 96

    Conjunto de Mapas (MAPSET) ............................................... 97R E C E I V E M A P ..................................................... 99S E N D M A P .......................................................... 101

    A P N D I C E S

    APNDICE AChamada de rotina CICS/MVS pelo NATURAL .................................. 103Rotina CICS/MVS chamada tanto por aplicaoCICS/MVS como por aplicao NATURAL .................................... 107

    APNDICE BLista das Condies de Exceo ........................................... 109

    APNDICE CLista dos Cdigos de ABEND ............................................... 115

    APNDICE DContedo do INCLUDE DFHBMSCA ............................................. 133

    APNDICE EContedo do INCLUDE DFHAID ............................................... 137Comando HANDLE AID ....................................................... 140

    APNDICE FCompilao de fontes PL/I-CICS/MVS ....................................... 143

    Execuo de uma aplicao PL/I-CICS/MVS .................................. 149APNDICE GComandos CICS/MVS ........................................................ 153

    G L O S S R I O .......................................................... 165

  • 7/28/2019 Manual Cics (Dimcic21)

    4/164

    Pag. 1

    I n t r o d u o

    C I C S / M V S

    (Customer Information Control System / Multiple Virtual Storage)

    CICS/MVS um produto (SOFTWARE) IBM, que manipula aplicaes ON-LINEs, com-posto de um conjunto de programas modulares (MACRO SISTEMA) de uso geral emcomunicao de dados que suporta uma rede de centenas de terminais.

    O CICS/MVS oferece o seguinte:

    * Controle concorrente (simultneo) da execuo de aplicaes, servindo v riosusurios ON-LINE.

    * Funes necess rias para que os programas de aplicao comuniquem-se comterminais locais, remotos e com subsistemas.

    * Controle de arquivos e banco de dados, em conjunto com os v rios mtodos deacessos fornecidos pela IBM.

    * Facilidades para se comunicar com outros CICS/MVS residentes no mesmo compu-tador ou em computadores interligados.

    Ficar mais f cil imaginar que o CICS/MVS um sistema operacional dentro doprprio sistema operacional. Nestes termos, o CICS/MVS um sistema operacional,cujo JOB cria um ambiente para a execuo de aplicaes ON-LINE, incluindoINTERFACEs a arquivos e banco de dados.

    ------------------------------------------------------------------------------| || ------------------------------- |

    | | Sistema Operacional | || | | || | ----------------------- | || | | C I C S / M V S | | || | | | | || ------- | | --------------- | | ------- || | | | | | Programa de | | | | | || | |||| Aplicao |||| | || ----- | | | do Usu rio | | | | | || ----- | | --------------- | | ------- || ------- | ----------------------- | arquivos e || ------------------------------- banco de dados || |------------------------------------------------------------------------------

    Ambiente ON-LINE CICS/MVS

    O sistema como um todo conhecido como sistema DB/DC(Data-Base/Data-Communication).

  • 7/28/2019 Manual Cics (Dimcic21)

    5/164

    Pag. 2

    C o n v e n o

    -----------------------------------------------------------------------------| Transao (Transaction) | Tarefa (Task) |

    -----------------------------------------------------------------------------| Uma transao pode ser considerada |Unidade b sica de trabalho que o com- || como sendo uma unidade de | putador deve realizar. Para o || processamento (que consiste de um ou |CICS/MVS representa a execuo de uma ||mais programas de aplicao) iniciada | transao para um nico usurio. || por um nico pedido de execuo, | || sempre atravs de um terminal. Uma | || transao ainda pode necessitar da | ||iniciao de uma ou mais tarefas para | || a sua execuo. | |-----------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    6/164

    Pag. 3

    Organizao do Sistema

    Viso global das tabelas e mdulos de gerncia do CICS/MVS

    ------------------------------------------------------------------------------| || CICS/MVS ADDRESS SPACE || || ----------------------------- || | Management Modules | || -------------------------------------------------------- || | Terminal | Task | Program | File | || | Control | Control | Control | Control | || -------------------------------------------------------- || | Storage | Dump | Basic | | || | Control | Control | Mapping | Etc. | || | | | Support | | || -------------------------------------------------------- |

    | || ----------------------------- || | Control Tables | || ------------------------------------------------------ || | Terminal | Program |Processing | File |Destination| || | Control | Control |Program | Control |Control | || | Table | Table |Table | Table |Table | || ------------------------------------------------------- || || ----------------------------- || | Service Programs | || ---------------------------------------------------------- || | System Initialization | System Termination | || ---------------------------------------------------------- || |

    | ----------------------------- || | Dynamic Storage Area | || ---------------------------------------------------------- || | --------------- --------------- | || | | Terminal | | File | | || | | Input/Output | | Input/Output | | || | | Areas (TIOAs) | | Areas (FIOAs) | | || | --------------- --------------- | || | ------------------- | || | | Transaction | | || | | Work Areas (TWAs) | | || | ------------------- | || ----------------------------------------------------------- || || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    7/164

    Pag. 4

    Componentes do CICS/MVS

    O sistema CICS/MVS consiste em:

    * Mdulos de gerncia;

    * Tabelas;

    * reas internas;

    * Blocos de Controle.

    Mdulos de gerncia do CICS/MVS

    so os programas do CICS/MVS que fazem INTERFACE entre o sistema operacionale os programas de aplicao. Cada mdulo de gerncia realiza uma funo espe-cial. Por exemplo, quando um programa de aplicao emite um pedido para ler umregistro, o mdulo de gerncia, FILE CONTROL PROGRAM processa o referido pedido.

    Quando um programa de aplicao emitir um pedido para enviar uma mensagem aoterminal, o mdulo de gerncia TERMINAL CONTROL PROGRAM atua como o INTERFACE.Pedidos de I/O so feitos ao CICS/MVS, ao invs de ao sistema operacional como feito quando os programas esto no ambiente de processamento BATCH.

    -----------------------------------------------------------------------------| Mdulos | Descrio |-----------------------------------------------------------------------------| FCP (File Control | Gerncia de arquivo. Controla todas as operaes dos || Program) | arquivos ISAM, DAM e VSAM. |-----------------------------------------------------------------------------| KCP (tasK Control | Gerncia de tarefa. Controla o uso da CPU dentro da || Program) | partio do CICS/MVS e cria as tarefas. |-----------------------------------------------------------------------------|PCP (Program Control | Gerncia de programa. Localiza os programas e |

    | Program) | carrega-os na partio do CICS/MVS. |-----------------------------------------------------------------------------|SCP (Storage Control | Gerncia de memria. Controla a alocao e liberao || Program) | da memria na rea de memria dinmica (DSA) da || | regio/partio do CICS/MVS. |-----------------------------------------------------------------------------|TCP (Terminal Control | Gerncia de terminal. Assegura a comunicao entre o || Program) | programa de aplicao e o terminal conectado a este || | programa no momento. |-----------------------------------------------------------------------------| TDP (Transient Data |Gerncia de dados transitrios. Controla as operaes || Program) | relacionadas com arquivos sequenciais. |-----------------------------------------------------------------------------| TSP (Temporary | Gerncia de memria tempor ria. Controla a memria || Storage Program) | tempor ria de dados. |-----------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    8/164

    Pag. 5

    -----------------------------------------------------------------------------| Mdulos | Descrio |-----------------------------------------------------------------------------| DCP (Dump Control |Mdulo que fornece o DUMP de qualquer tarefa CICS/MVS || Program) | (e opcionalmente as tabelas do CICS/MVS). |-----------------------------------------------------------------------------

    |ICP (Interval Control | Controla todos os servios referentes a hora, por || Program) |exemplo, a suspenso de uma tarefa por um determinado || | perodo de tempo. |-----------------------------------------------------------------------------| ISC |Fornece facilidades de comunicao entre um CICS/MVS e || (Intercommunication |outro que pode estar residente no mesmo computador ou || Control Program) | em um outro computador interligado. |-----------------------------------------------------------------------------| BMS (Basic Mapping | Mdulo que facilita a exibio de informao em uma || Support) | grande variedade de terminais e oferece ainda a || |independncia de dispositivos, paginao em terminal, || | e capacidade de direcionamento de mensagem. |-----------------------------------------------------------------------------

    Tabelas internas do CICS/MVSDefinem o ambiente do sistema CICS/MVS. As tabelas, que so geradas pelo pro-

    gramador de sistemas, esto funcionalmente associadas com os mdulos degerncia. Por exemplo, todas as definies de arquivo esto na FILE CONTROL TA-BLE de modo que as definies podem ser compartilhadas por todos os programas deaplicao e tarefas. Por este motivo, os arquivos no so definidos no programade aplicao como quando eles esto num programa BATCH. A TERMINAL CONTROL TABLEdefine cada terminal na rede; assim o programa de aplicao no precisapreocupar-se com os atributos fsicos dos v rios terminais no sistema. Nem todosos mdulos de gerncia tem tabelas associadas.

    -----------------------------------------------------------------------------| Tabelas | Descrio |-----------------------------------------------------------------------------

    | DCT (Destination | Tabela de destino. Contm informaes sobre a || Control Table) | definio do arquivo sequencial gerenciado pelo TDP. |-----------------------------------------------------------------------------| FCT (File Control |Tabela de arquivo. Contm entradas para arquivos ISAM, || Table) | DAM, ou VSAM gerenciado pelo FCP, com a definio de || | arquivo correspondente. |-----------------------------------------------------------------------------|PCT (Program Control |Tabela de transao. Contm uma entrada por cdigo de || Table) | transao definido, a fim de conferir o cdigo e || | associ -lo com um programa em processamento. |-----------------------------------------------------------------------------| PPT (Program | Tabela de programas. Contm uma entrada por programa || Processing Table) | em processamento, dando o endereo do programa na || | memria. |-----------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    9/164

    Pag. 6

    -----------------------------------------------------------------------------| Tabelas | Descrio |-----------------------------------------------------------------------------|TCT (Terminal Control |Tabela de terminais. Contm uma entrada para cada ter- || Table) | minal controlado pelo CICS/MVS dentro da instalao || | descrevendo o terminal e seu estado. |

    -----------------------------------------------------------------------------

    reas internas do CICS/MVS

    -----------------------------------------------------------------------------| reas internas | Descrio |-----------------------------------------------------------------------------| TIOA (Terminal I/O | rea de entrada/sada de terminal. || Area) | |-----------------------------------------------------------------------------|FIOA (File I/O Area) | rea de entrada/sada de arquivo. || | |

    -----------------------------------------------------------------------------| EIB (Exec Interface | Ver "Bloco de Interface de Execuo". || Block) | |-----------------------------------------------------------------------------

    Blocos de Controle do CICS/MVS

    -----------------------------------------------------------------------------| | |-----------------------------------------------------------------------------| TCA (Task Control | rea que contm informaes pertinentes || Area) |tarefa. Contm indicadores de localizao para o pro- || | grama de aplicao e para a entrada do terminal na || | TERMINAL CONTROL TABLE. |-----------------------------------------------------------------------------

    | CSA (Common System | Principal bloco de controle do CICS/MVS. Contm, || Area) |informao geral do sistema usada pelos v rios mdulos || |de gerncia, incluindo os endereos das tabelas e dos || | prprios mdulos de gerncia. |-----------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    10/164

    Pag. 7

    Fluxo de transao do CICS/MVS

    O CICS/MVS supervisiona toda a atividade de comunicao de dados, o que sig-nifica que o CICS/MVS:

    * gerencia os terminais,* gerencia os dados, e* gerencia os programas de aplicao.

    Vejamos o que acontece quando uma transao do CICS/MVS entrada num termi-nal.

    Quando o CICS/MVS for inicializado, todos os mdulos principais de gerncia,tabelas, e a Common System Area (CSA) so carregados na memria.

    A seguinte ilustrao mostra a CSA na regio/partio do CICS/MVS. Os mdulosde gerncia e tabelas sero adicionados ao diagrama conforme se fizer refernciaa eles.

    ------------------------------------------------------------------------------| -------------------------------- || | Common System Area | || -------------------------------- || | | -------- || | ------ | || | | | | || | | ------ || | | -- || | | ---- || | | terminal || -------------------------------- |------------------------------------------------------------------------------

    Uma transao entrada por um operador de terminal consiste de duas partes:uma identificao de transao seguida por dados que devem ser processados. Con-siderar que um operador queira ter informao sobre a situao de um tem deinvent rio. A identificao de transao "STAT" e o nmero do tem a ser veri-ficado 195.

    ------------------------------------------------------------------------------| || -> identificao da transao || ------------------ || |STAT 195--------------> nmero do tem do || | | invent rio a ser || | | verificado || | | || | | || ----------------- || --------- || ----------- || terminal || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    11/164

    Pag. 8

    Quando a transao STAT entrada, o mdulo de gerncia TCP l a entrada naregio/partio do CICS/MVS. Antes que os dados possam ser armazenados, amemria deve ser obtida para uma TIOA (rea de entrada/sada do terminal). O TCPpede que o SCP aloque a quantidade apropriada de memria. O SCP o mdulo degerncia que usado por todos os outros mdulos do CICS/MVS e programas deaplicao da regio/partio. Uma vez adquirida a memria, o TCP move a mensagem

    de entrada para a TIOA.

    ------------------------------------------------------------------------------| || -------------------------------- || | Common System Area | || -------------------- || ||TCP|||SCP|| | || | || | | -------- || | ------STAT 195| || | TIOA | | | || | | ------ || | |STAT 195| | -- |

    | | | ---- || | | terminal || -------------------------------- || |------------------------------------------------------------------------------

    Todos os terminais no sistema so descritos na TCT, sendo cada terminal re-presentado por uma entrada (TCTTE - Terminal Control Table Terminal Entry).Sempre que uma mensagem for recebida de um terminal, um indicador de localizaopara a rea de entrada do terminal armazenada nesta TCTTE do terminal.

    ------------------------------------------------------------------------------| || -------------------------------- || | Common System Area | |

    | ------------------------------ || | TCP | SCP | | || ---------- | || | | -------- || | ------------|TCTTE|--------STAT 195| || | TIOA V | | | || | -------- ------- | ------ || | |STAT 195| ------- | -- || | -------- ------- | ---- || | | terminal || -------------------------------- || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    12/164

    Pag. 9

    Notar que nenhuma outra transao pode ser lanada a partir deste terminalat que a transao, presentemente solicitada haja concludo.

    Aps a entrada da transao, o KCP que possui a funo de iniciar uma tarefapara processar a transao, verifica na PCT para determinar se a identificaoda transao de entrada v lida. O PCT contm uma entrada para cada transao

    que possa ser processada no sistema. Cada entrada da PCT contm, entre outrascoisas, uma identificao de transao e o nome do programa de aplicao quedeve ser executada em resposta quela transao.

    Se uma identificao de transao que entrou estiver listada na PCT, o KCPcria uma tarefa para processar a transao. A criao de uma tarefa envolve aobteno e inicializao de uma rea de Controle de Tarefa (TCA). A TCA o bloco de controle que o CICS/MVS usa para controlar o processamento de umatransao. Ela d acesso a todas as reas de memria obtidas em conexo com atarefa. A TCA tambm serve como o veculo de comunicao entre o programa deaplicao e os mdulos de gerncia do CICS/MVS.

    Uma vez criada uma TCA para uma tarefa, esta tarefa ligada ao terminalrequisitante por meio de indicadores de localizao armazenados tanto na TCA

    como na TCTTE. Em transao conversacional haver subsequentes mensagens de en-trada. Estas mensagens so passadas para a tarefa como dados.

    ------------------------------------------------------------------------------| || || -------------------------------- || | Common System Area | || ------------------------ || | TCP | SCP ||KCP|| PCT | || ---------- | || | |STAT:||| | || | |STATPGM| | || | | || | ||||||||| | |

    | | TIOA | || | -------- ------- | -------- || | |STAT 195-------->| TCTTE --------STAT 195| || | -------- --->------- | | | || | | ------- | ------ || | |||TCA 1|---- ------- | -- || | ------- | ---- || | | terminal || -------------------------------- || || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    13/164

    Pag. 10

    O Bloco de Interface de Execuo (EIB) criado e inicializado com informaesda tarefa. O Execute Interface Program (EIP) responsvel pela converso doscomandos codificados em pedidos que podem ser interpretados pelos mdulos degerncia.

    ------------------------------------------------------------------------------| || || || || -------------------------------- || | Common System Area | || ----------------------- || | TCP | SCP | KCP ||EIP|| | || --------------- | || | PCT | || | ------- | || | |STAT: | | || | |STATPGM| | |

    | | ------- | || | | | | || | ------- | || | TIOA | || | -------- ------- | -------- || | |STAT 195-------->| TCTTE --------STAT 195| || | -------- --->------- | | | || | -------- | ------- | ------ || | | TCA 1 ---- ------- | -- || | -------- ------- | ---- || | | terminal || | | || | ||EIB|| | || | | || | | |

    | -------------------------------- || || || || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    14/164

    Pag. 11

    A entrada da PCT para uma transao especifica o nome do programa deaplicao que deve processar a transao. O nome do programa usado peloProgram Control Program (PCP) para selecionar e iniciar este programa.

    Todos os programas de aplicao sob o CICS/MVS so descritos na ProcessingProgram Table (PPT). A entrada da PPT para um programa contm informaes para a

    localizao do programa na biblioteca de programas do CICS/MVS, e se um programaj est ou no na memria e em uso. O PCP verifica a entrada na PPT para o pro-grama (STATPGM no nosso exemplo) e carrega o programa na memria se necess rio.

    A cpia da AUTOMATIC STORAGE do programa para a tarefa tambm criada nestaocasio.

    ------------------------------------------------------------------------------| || || -------------------------------- || | Common System Area | || ---------------------- |

    | | TCP | SCP | KCP | EIP ||PCP|| | || -------------------- | || | PPT PCT | || | ------- | || | |STATPGM| |STAT: | | || | |STATPGM| | || | ------- | || | | | | || | ------- | || --------- | TIOA | || |Bibliot. | | -------- ------- | -------- || | de --- |STAT 195-------->| TCTTE --------STAT 195| || |programas| | -------- --->------- | | | || --------- | -------- | ------- | ------ || | | TCA 1 ---- ------- | -- |

    | | -------- ------- | ---- || | ----- | terminal || | |Defin.das---- | EIB | | || | | reas de| V ----- | || | |||dados||| | || | |Cpia das|| | || | ||Instr.|||| reas de|| | || | |doSTATPGM|||||dados||| | || | | || | | || -------------------------------- || || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    15/164

    Pag. 12

    Uma das primeiras coisas que um programa de aplicao deve fazer quando elerecebe o controle enviar um comando RECEIVE do TCP. Em resposta a este co-mando, o EIP move a mensagem de entrada da TIOA para a rea de trabalho do pro-grama e ento libera a TIOA. (Se a opo SET estiver especificada no comandoRECEIVE, um indicador de localizao (POINTER) dentro do programa serposicionado para apontar para a TIOA).

    ------------------------------------------------------------------------------| || || || || ----------------------------------- || | Common System Area | || ------------------------------ || | TCP | SCP | KCP | EIP | PCP | | || ------------------------- | || | PPT PCT | || | ------- ------- | |

    | | |STATPGM| |STAT: | | || | ------- |STATPGM| | || | ------- ------- | || | ------- | | | || | ------- ------- | || --------- | | || |Bibliot. | | ------- | -------- || | de --- ------------>| TCTTE -----------STAT 195| || |programas| | | ------- | | | || --------- | ------------ ------- | ------ || | | TCA 1 | | ------- | -- || | ----------- | ------- | ---- || | --------- | | ----- | terminal || | |Defin.das| | ---->| EIB | | || | | reas de| V ----- | |

    | | | dados | | || | ---------|STAT 195||| | || | | Instr. ||||||||||||| | || | |doSTATPGM||||||||||||| | || | --------- | || | W/S COPY | || ----------------------------------- || || || || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    16/164

    Pag. 13

    A seguir, o STATPGM emite um pedido para a leitura do registro 195 do arquivoMESTRE. O File Control Program (FCP) usa a entrada da File Control Table (FCT)para o arquivo para determinar suas caractersticas. O FCP inicia ento aoperao de leitura.

    ------------------------------------------------------------------------------| || || || || || ----------------------------------- || | Common System Area | || ------------------------- || | TCP | SCP | KCP | EIP | PCP ||FCP|| || ------------------------- || | FCT PPT PCT | || --------- | ------- ------- | || | Arquivo | | |MASTER | |STATPGM| |STAT: | | |

    | | --- ------- |STATPGM| | || | MESTRE | | ------- ------- | || --------- | ------- | | | || | ------- ------- | || --------- | | || |Bibliot. | | ------- | -------- || | de --- ------------>| TCTTE -----------STAT 195| || |programas| | | ------- | | | || --------- | ------------ ------- | ------ || | | TCA 1 | | ------- | -- || | ----------- | ------- | ---- || | --------- | | ----- | terminal || | |Defin.das| | ---->| EIB | | || | | reas de| V ----- | || | | dados |---------- | |

    | | ---------|STAT 195 | | || | | Instr. || | | || | |doSTATPGM|| | | || | ------------------- | || | W/S COPY | || ----------------------------------- || || || || || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    17/164

    Pag. 14

    Nesse interm, suponha que um operador em um outro terminal tenha entrado umatransao STAT para o nmero de tem 210. Pelo fato de o CICS/MVS ser um sistemade multiexecuo de tarefas, uma tarefa pode ser iniciada para processar estasegunda operao enquanto a primeira estiver esperando pelo trmino de umaoperao de I/O. Todo o processamento de inicializao de tarefa descrito para aprimeira tarefa ocorre agora para a nova tarefa.

    ------------------------------------------------------------------------------| || ----------------------------------- || | Common System Area | || ------------------------------ || | TCP | SCP | KCP | EIP | PCP | FCP | || ------------------------------ || | FCT PPT PCT | || --------- | ------- ------- ------- | || | Arquivo | | |MASTER | |STATPGM| |STAT: | | -------- || | --- ------- ------- |STATPGM| | ---STAT 195| || | MESTRE | | ------- ------- ------- | | | | || --------- | ------- ------- | | | | ------ |

    | | ------- ------- ------- | | -- || --------- | | | ---- || |Bibliot. | | ------- | | terminal || | de --- ------------>| TCTTE ------- -------- || |programas| | | ------------------STAT 210| || --------- | ------------ | TCTTE - - | | | || | | TCA 1 | | -------

  • 7/28/2019 Manual Cics (Dimcic21)

    18/164

    Pag. 15

    O STATPGM ento iniciado para a nova tarefa. O comando RECEIVE (ver maisadiante) emitido para acesso mensagem de entrada, e um pedido emitido paraler o registro 210 do arquivo MESTRE. Enquanto o FCP estiver processando estepedido, a primeira tarefa retoma o controle.

    O registro para o tem 195 foi lido pelo FCP na memria intermedi ria de

    arquivo. Como resultado do comando READ (ver mais adiante) do programa (opoINTO), o registro movido desta memria intermedi ria para a rea de trabalhodo programa.

    ------------------------------------------------------------------------------| ----------------------------------- || | Common System Area | || ------------------------------ || | TCP | SCP | KCP | EIP | PCP | FCP | || ------------------------------ || | FCT PPT PCT | || --------- | ------- ------- ------- | || | Arquivo | | |MASTER | |STATPGM| |STAT: | | -------- || | --- ------- ------- |STATPGM| | ---STAT 195| |

    | | MESTRE | | ------- ------- ------- | | | | || --------- | ------- ------- | | | | ------ || | ------- ------- ------- | | -- || --------- | | | ---- || |Bibliot. | | ------- | | terminal || | de --- ------------>| TCTTE ------- -------- || |programas| | | ------------------STAT 210| || --------- | ------------ | TCTTE - - | | | || | | TCA 1 | | -------

  • 7/28/2019 Manual Cics (Dimcic21)

    19/164

    Pag. 16

    O programa formata ento uma resposta para a consulta e emite um comando SEND(ver mais adiante) do TCP para transmitir a mensagem. o CICS/MVS obtm uma TIOApara a mensagem e posiciona um indicador na TCTTE indicando que este terminaltem uma sada pendente.

    ------------------------------------------------------------------------------

    | || || ----------------------------------- || | Common System Area | || ------------------------------ || | TCP | SCP | KCP | EIP | PCP | FCP | || ------------------------------ || | FCT PPT PCT | || --------- | ------- ------- ------- | || | Arquivo | | |MASTER | |STATPGM| |STAT: | | -------- || | --- ------- ------- |STATPGM| | ---STAT 195| || | MESTRE | | ------- ------- ------- | | | | || --------- | ------- ------- | | | | ------ || | ------- ------- ------- | | -- |

    | --------- | | | ---- || |Bibliot. | | |PART 195/QTY 257| ------- | | terminal || | de --- ->| TCTTE ------- -------- || |programas| | TIOA ------------>------------------STAT 210| || --------- | ------------ | TCTTE | | | | || | | TCA 1 | | -------| EIB | | | terminal || | | reas de| V ----- | | || | | dados | | | || | ---------|STAT 195 | | | || | |Instr. do|| 195... |------ | || | | STATPGM ||PART 195 || TCA 2 | | || | ---------|QTY 257 |----- | |

    | | | | | || | W/S COPY | | | || | ----------

  • 7/28/2019 Manual Cics (Dimcic21)

    20/164

    Pag. 17

    Depois do comando SEND, o programa de aplicao emite um comando RETURN (vermais adiante) para terminar a tarefa. Quando a tarefa termina, toda a memria datarefa liberada exceto a rea de sada do terminal. Esta rea retida peloCICS/MVS at que o TCP tenha realmente transmitido a mensagem. Neste ponto, oSTATPGM ainda est sendo usado pela tarefa pedida do segundo terminal.

    ------------------------------------------------------------------------------| || || ----------------------------------- || | Common System Area | || ------------------------------ || | TCP | SCP | KCP | EIP | PCP | FCP | || ------------------------------ || | FCT PPT PCT | || --------- | ------- ------- ------- | || | Arquivo | | |MASTER | |STATPGM| |STAT: | | -------- || | --- ------- ------- |STATPGM| | ---STAT 195| || | MESTRE | | ------- ------- ------- | | | | || --------- | ------- ------- | | | | ------ |

    | | ------- ------- ------- | | -- || --------- | ---------------- | | ---- || |Bibliot. | | |PART 195/QTY 257| ------- | | terminal || | de --- ----------------->| TCTTE ------- -------- || |programas| | TIOA ------------------STAT 210| || --------- | | TCTTE | | | | || | -------

  • 7/28/2019 Manual Cics (Dimcic21)

    21/164

    Pag. 18

    Quando a primeira tarefa termina, a segunda tarefa pode prosseguir oprocessamento. Ela tambm formata uma resposta, emite um comando SEND, e ter-mina. Quando esta tarefa termina, o PCP marca a entrada na PPT para o STATPGMcomo no-em-uso, mas o programa permanece na memria enquanto a memria no fornecess ria. Isto permite que o CICS/MVS reuse a cpia que j est na memriacaso o programa seja pedido por uma outra transao.

    ------------------------------------------------------------------------------| || || || || ----------------------------------- || | Common System Area | || ------------------------------ || | TCP | SCP | KCP | EIP | PCP | FCP | || ------------------------------ || | FCT PPT PCT | || --------- | ------- ------- ------- | |

    | | Arquivo | | |MASTER | |STATPGM| |STAT: | | || | --- ------- ------- |STATPGM| | ---STAT 195| || | MESTRE | | ------- ------- ------- | | |QTY 257 | || --------- | ------- ------- | | | | || | ------- ------- ------- | | -- || --------- | | | ---- || |Bibliot. | | ------- | | terminal || | de --- | TCTTE ------- -------- || |programas| | ------- | |STAT 210| || --------- | --- TCTTE ----------- | || | | ------- | ------ || | | ------- | -- || | --------- | | ---- || | |Defin.das| | | terminal || | | reas de| | | |

    | | | dados | V | || | --------- ---------------- | || | |Instr. do| |PART 210/QTY 430| | || | | STATPGM | ---------------- | || | --------- TIOA | || | | || ----------------------------------- || || || || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    22/164

    Pag. 19

    Restries do PL/I sob o CICS/MVS

    As seguintes restries aplicam-se a programas PL/I que sero usadas comoaplicaes CICS/MVS (vide manual: PL/I Optimizing Compile Programmer's Guide).

    1. No usar as seguintes BUILT-IN:

    DATETIMEPLISRTPLICKPTPLICANCPLIRETCPLIRETV

    2. No usar as seguintes BUILT-IN de MUSTITASKING:

    COMPLETIONPRIORITY

    STATUS3. No usar as seguintes opes de MULTITASKING:

    EVENTPRIORITYTASK

    4. No usar as seguintes instrues PL/I:

    READWRITEREWRITEGETPUT

    OPENCLOSEDISPLAYDELAYLOCATEDELETEUNLOCKSTOPHALTEXITFETCHRELEASE

    5. No se deve usar as seguintes rotinas externas:

    ABENDABEDUMP

  • 7/28/2019 Manual Cics (Dimcic21)

    23/164

    Pag. 20

    6. No usar as seguintes facilidades de depurao:

    FLOWCOUNTREPORTGONUMBER

    GOSTMTCHECK/NOCHECK

    7. No se deve usar o SORT/MERGE do PL/I.

    8. No se deve usar reas STATICs (exceto para dados somente para leitura(READ-ONLY)).

    9. Se for declarado uma vari vel com atributos STATIC e EXTERNAL, devertambm incluir o atributo INITIAL. Seno, tal declarao ir gerar um CSECTcomum que no poder ser manipulado pelo CICS.

    10. No se pode usar a opo de 48 CHARACTER SET do PL/I.

    11. No se pode codificar os programas PL/I com palavras chaves em minscula.Observao: No utilizar os tens acima descritos, pois eles causam srios da-

    nos ao CICS/MVS, por exemplo, a subrotina externa "ABEND" que noPL/I utilizada para forar um trmino anormal da execuo, noCICS/MVS alm dele ABENDar a execuo da tarefa acaba ABENDando oprprio CICS/MVS.

    Tamanho de Programa

    O mdulo objeto resultante de qualquer programa de aplicao CICS/MVS, nodever ocupar mais que 524.152 bytes (512K) da memria principal.

    Tamanho da rea de Trabalho

    O tamanho da rea de trabalho (Working Storage) no deve ultrapassar de65.560 bytes (64K).

  • 7/28/2019 Manual Cics (Dimcic21)

    24/164

    Pag. 21

    O N E R R O R S Y S T E M

    Normalmente para o tratamento de erro PL/I, usado a instruo "ON ERROR".Algumas vezes pode ocorrer de no prprio procedimento de tratamento de erro aca-bar ABENDando, oque acabaria acionando novamente o "ON ERROR" e ficar num LOOPde ABENDs. Isto para aplicaes BATCH no acarretaria srios danos, pois depois

    de algum tempo este ABENDaria por tempo de execuo m xima do JOB. Mas para umaaplicao CICS/MVS, isto se torna penoso, pois esta aplicao ficaria neste LOOPat que seja restartado o JOB do CICS/MVS.

    ------------------------------------------------------------------------------| || DCL VARIAVEL FIXED (15); || ... || ------------------------------>ON ERROR SNAP BEGIN; || | DO; || |ON ERROR SNAP BEGIN; || | DO; || | -->ON ERROR SYSTEM;--------> Sistema Operacional || | ABEND---PUT SKIP DATA (VARIAVEL); | || | CALL ABEND; | || | END; V || |ABEND ... termina a aplicao || -----------------VARIAVEL = 'AAAAAAA'; || ... || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    25/164

    Pag. 22

    Exemplo de uma aplicao CICS/MVS em PL/I

    ------------------------------------------------------------------------------| || PGMCIC : PROC (PTR) OPTIONS (MAIN); || DCL PTR POINTER; |

    | 1 COMAREA BASED (PTR), || 2 PAGINA BIN FIXED (15), || 2 ULT_PAGINA BIN FIXED (15), || 2 QTDE BIN FIXED (31), || 2 ISN_TAB (50) BIN FIXED (31); || DCL 1 AREA_TERM, || 2 CODIGO_TRANS CHAR (04), || 2 PARAMETRO CHAR (08); || DCL RET_CODE BIN FIXED (31); || %INCLUDE MAC01(DFHAID); || %INCLUDE MAC01(DIERRCIC); || %INCLUDE MAP(PGMMAPM); || DCL DEF_MAPA CHAR(STG(PGMMAP1O)) DEF PGMMAP1O; || %INCLUDE MAC01(ADABAS); |

    | ARQ(FILE_ADABAS) NUM(001) QMAX(50) USO(ACESS) || CPO (CPO1,A1) ALFA(10) || CPO (CPO2,A2) UNPK(05,) || CPO (CPO3,A3) DFIX(03,) || CPO (CPO4,A4) ALFA(30) || SUP (SUP_DESCR,SP) || CPO (CPO1,A1) ALFA(10) || CPO (CPO2,A2) UNPK(05,) || FIM || FIM; || NOMEPGM(PGMCIC); || ON ERROR SNAP BEGIN; || ON ERROR SYSTEM; || MENSERRO('ERRO NAO PREVISTO PELA TRANSACAO', || 'FAVOR AVISAR O ANALISTA RESPONSAVEL'); |

    | END; || DEF_MAPA = LOW(STG(PGMMAP1O)); || IF (EIBCALEN = 0) THEN || DO; || || --------------------------------------------------- || |EXEC CICS RECEIVE INTO (AREA_TERM) RESP (RET_CODE);| || --------------------------------------------------- || || IF (RET_CODE = DFHRESP(LENGERR)) THEN || CALL MANDA_MSG('ERRO NOS PARAMETRO, FAVOR VERIFICAR'); || IF (VERIFY(PARAMETRO,'0123456789') = 0) THEN || CALL MANDA_MSG ('PARAMETRO NAO NUMERICO'); || ALLOC COMAREA; || PAGINA = 0; || || || || continua ... || || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    26/164

    Pag. 23

    ------------------------------------------------------------------------------| || TODOS (FILE_ADABAS) COM (SUPER_DESCR > PARAMETRO) || ORD (PARAMETRO) || QTD (QTDE) || EM (ISN_TAB); |

    | IF (QTDE = 0) THEN || DO; || ULT_PAGINA = QTDE / 10 - 1; || IF (MOD (QTDE,10) = 0) THEN || ULT_PAGINA = ULT_PAGINA + 1; || CALL MONTA_TELA; || END; || CALL MANDA_MSG ('REGISTRO NAO ENCONTRADO NO BANCO DE DADOS'); || END; || CALL TESTA_TECLA; || 1MONTA_TELA : PROC; || DCL IND BIN FIXED (15), || LIMITE BIN FIXED (15); || LIMITE = ((PAGINA * 10) + 11); |

    | DO IND = ((PAGINA * 10) + 1) TO QTDE WHILE (IND < LIMITE); || OBTER (FILE_ADABAS) DE (ISN_TAB(IND)); || PGMMAP1O.CPO1(IND) = FILE_ADABAS.CPO1; || PGMMAP1O.CPO2(IND) = FILE_ADABAS.CPO2; || PGMMAP1O.CPO3(IND) = FILE_ADABAS.CPO3; || PGMMAP1O.CPO4(IND) = FILE_ADABAS.CPO4; || END; || IF (IND < LIMITE) THEN || DO IND = IND TO (LIMITE - 1); || PGMMAP1O.CPO1(IND) = ' '; || PGMMAP1O.CPO2(IND) = 0; || PGMMAP1O.CPO3(IND) = 0; || PGMMAP1O.CPO4(IND) = ' '; || END; || CALL MANDA_MAPA; |

    | END MONTA_TELA; || 1TESTA_TECLA : PROC; || SELECT (EIBAID); || WHEN (DFHCLEAR) || CALL MONTA_TELA; || WHEN (DFHENTER) || || ------------------------------------------------------- || |EXEC CICS RETURN TRANSID (EIBTRNID) COMMAREA (COMAREA);| || ------------------------------------------------------- || || WHEN (DFHPF3,DFHPA2) || CALL MANDA_MSG ('FIM DA TRANSACAO'); || WHEN (DFHPF7) DO; || PAGINA = PAGINA - 1; || IF (PAGINA < 0) THEN || DO; || || || continua ... || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    27/164

    Pag. 24

    ------------------------------------------------------------------------------| || PAGINA = 0; || PGMMAPO.MSG = 'NAO HA PAGINA ANTERIOR A ESTA'; || CALL MANDA_MSG_MAPA; || END; |

    | CALL MONTA_TELA; || END; || WHEN (DFHPF8) DO; || PAGINA = PAGINA + 1; || IF (PAGINA > ULT_PAGINA) THEN || DO; || PAGINA = ULT_PAGINA; || PGMMAPO.MSG = 'NAO HA PAGINA POSTERIOR A ESTA'; || CALL MANDA_MSG_MAPA; || END; || CALL MONTA_TELA; || END; || OTHERWISE DO; || PGMMAP1O.MSG = 'TECLA INVALIDA'; |

    | CALL MANDA_MSG_MAPA; || END; || END; || END TESTA_TECLA; || 1MANDA_MAPA : PROC; || || ----------------------------------------------------------------- || |EXEC CICS SEND MAP ('PGMMAP1') MAPSET ('PGMMAPM') FROM (PGMMAP1O)| || | ERASE ALARM FREEKB; | || |EXEC CICS RETURN TRANSID (EIBTRNID) COMMAREA (COMAREA); | || ----------------------------------------------------------------- || END MANDA_MAPA; || 1MANDA_MSG : PROC (MENS); || DCL MENS CHAR (78); || --------------------------------------- |

    | |EXEC CICS SEND FROM (MENS) ALARM ERASE;| || |EXEC CICS RETURN; | || --------------------------------------- || END MANDA_MSG; || 1MANDA_MSG_MAPA : PROC; || ----------------------------------------------------------------- || |EXEC CICS SEND MAP ('PGMMAP1') MAPSET ('PGMMAPM') FROM (PGMMAP1O)| || | ALARM FREEKB DATAONLY; | || |EXEC CICS RETURN TRANSID (EIBTRNID) COMMAREA (COMAREA); | || ----------------------------------------------------------------- || END MANDA_MSG_MAPA; || 0END PGMCIC; || || ---- ---> Comandos CICS/MVS || ---- || || |------------------------------------------------------------------------------

    Observao : Este fonte possui recursos existentes somente nesta instalao,no sendo garantido a funcionalidade da aplicao em qualqueroutra instalao.

  • 7/28/2019 Manual Cics (Dimcic21)

    28/164

    Pag. 25

    Exec Interface Block (EIB)

    Alm dos servios realizados pelos v rios mdulos de gerncia do CICS/MVS,ele ainda mantm uma srie de informaes pertinente a tarefa, que o programa deaplicao poder necessitar durante a sua execuo, em uma rea conhecida comoEIB (Execution Interface Block).

    Estes dados so armazenados em uma rea interna do CICS/MVS na qual o pro-grama de aplicao no tem acesso direto. Contudo, o CICS/MVS copia estes dadosem uma rea do programa de aplicao na hora da execuo da tarefa. Esta rea noprograma de aplicao criada automaticamente durante a compilao do mesmo,no havendo necessidade de cri -la.

    O programa de aplicao poder acessar estes valores diretamente pelo nome docampo que foi gerado automaticamente. Para se conhecer todos os campos existen-tes nesta rea consultar o manual: CICS/MVS Application Programmer's ReferenceManual (Command Level) - IBM;

    Abaixo esto algumas das informaes que esta rea contm durante a execuoda tarefa.

    ----------------------------------------------------------------------------|CAMPO |DESCRI O |FORMATO NO PL/I |----------------------------------------------------------------------------|EIBTIME |Hora de incio da tarefa no formato HHMMSS. |FIXED (07) || | |(0HHMMSS+) || | Este campo pode ser atualizado durante a | || |execuo da tarefa para a hora atual usando-se | || |o comando EXEC CICS ASKTIME (ver mais adiante a | || |descrio do comando). | |----------------------------------------------------------------------------|EIBDATE |Data (JULIANA) de incio da tarefa no formato |FIXED (07) || |AADDD |(00AADDD+) || | | || | Para se conseguir a data no formato AAMMDD | |

    | |(gregoriano) ver tem "Requisio de data e | || |hora no CICS/MVS". | |----------------------------------------------------------------------------|EIBTASKN |Cdigo numrico que representa o nmero da |FIXED (07) || |tarefa atribuda pelo CICS/MVS. | |----------------------------------------------------------------------------|EIBTRNID |Identificao da transao. |CHAR (04) |----------------------------------------------------------------------------|EIBTRMID |Identificao do terminal. |CHAR (04) |----------------------------------------------------------------------------|EIBAID |Valor numrico atribudo pelo CICS/MVS a cada |CHAR (01) || |tecla de funo. Este valor gerado em | || |hexadecimal. (Por exemplo, a tecla ENTER co- | || |rresponde ao valor X'7C' em hexadecimal) | |----------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    29/164

    Pag. 26

    ----------------------------------------------------------------------------|CAMPO |DESCRI O |FORMATO NO PL/I |----------------------------------------------------------------------------|EIBCALEN |Tamanho da rea que foi passada como parmetro |BIN FIXED (15) || |para a tarefa. Caso a tarefa no receba nenhum | || |parmetro este campo conter o valor zero em | |

    | |bin rio. | |----------------------------------------------------------------------------|EIBCPOSN |Posio do cursor na tela. A posio do cursor |BIN FIXED (15) || |na tela dado em valor linear, iniciando-se na | || |posio 0. Para terminais do tipo 3270, a | || |posio do cursor para a linha 2 coluna 1 80, | || |para a linha 2 coluna 2 81, e assim por | || |diante. Para conseguir a partir deste valor a | || |posio do cursor em termos de linha e coluna, | || |proceder da seguinte maneira: | || | | || |1. Dividir o campo EIBCPOSN por 80; | || | | || |2. A parte inteira do resultado mais um, re- | |

    | | presenta o valor da linha; | || | | || |3. O resto da diviso do tem 1 mais um o | || | valor da coluna. | |----------------------------------------------------------------------------

    Observao: O programa de aplicao pode fazer uso do contedo dos campos doEIB da maneira que desejar, mas os mesmos "NUNCA DEVEM SER ALTE-RADOS" no prprio campo do EIB. Uma vez alterado o contedo destescampos, no garantido a execuo normal.

  • 7/28/2019 Manual Cics (Dimcic21)

    30/164

    Pag. 27

    Formato de um comando CICS/MVS no PL/I

    O formato geral de um comando CICS/MVS EXECUTE CICS (ou simplesmente, EXECCICS) seguido do nome de uma funo e possivelmente de uma ou mais opo, comomostrado abaixo:

    ------------------------------------------------------------------------------| || EXEC{UTE} CICS funo { { opo { (argumento) }} || . . . || { opo { (argumento) }} }; || |------------------------------------------------------------------------------

    Onde:

    -----------------------------------------------------------------------------| EXEC{UTE} CICS | palavra chave que identifica um comando CICS/MVS. |-----------------------------------------------------------------------------| funo | descreve a operao desejada. |

    -----------------------------------------------------------------------------| opo |descreve quaisquer das v rias facilidades (opcionais) || | disponveis em cada funo. || | || | algumas opes so seguidas de um argumento entre || | parntesis, e outras no. || | || | Pode-se codificar em qualquer ordem. |-----------------------------------------------------------------------------| argumento | constante ou vari vel. |-----------------------------------------------------------------------------| ; |delimitador final do comando CICS/MVS, v lido somente || | quando utilizado em aplicaes PL/I. || | || | Por exemplo, o delimitador utilizado em aplicaes |

    | | COBOL : "END-EXEC.". |-----------------------------------------------------------------------------

    A codificao de qualquer comando CICS/MVS deve seguir as regras decodificao da linguagem na qual se est utilizando. (Por exemplo: a codificaode um comando PL/I inicia se na coluna 2, logo o comando CICS/MVS tambm deverseguir a mesma regra.)

  • 7/28/2019 Manual Cics (Dimcic21)

    31/164

    Pag. 28

    ------------------------------------------------------------------------------| CONVEN O PARA CODIFICA O DE UM COMANDO CICS/MVS NO PL/I | | || || || O comando CICS/MVS no PL/I deve comear na coluna 2 e terminar por ponto- |

    |e-virgula (";"), e no deve ultrapassar a coluna 72, como mostrado no exemplo ||seguinte: || || ------------------------------------------------- || | | || | |...+....1....+....2....+....3....+....4....+ | || | EXEC CICS WRITEQ TS | || | QUEUE ('FILAQ') | || | ITEM (05) REWRITE | || | FROM (DADOS) ; | || | | || ------------------------------------------------- || || |

    | As opes de cada comando CICS/MVS podem ser codificadas em qualquer ||ordem, no so posicionais. || || ------------------------------------------------- || | | || | |...+....1....+....2....+....3....+....4....+ | || | EXEC CICS WRITEQ TS | || | ITEM (05) | || | QUEUE ('FILAQ') | || | FROM (DADOS) | || | REWRITE ; | || | | || ------------------------------------------------- || |------------------------------------------------------------------------------

    Exemplo de um comando CICS/MVS

    ------------------------------------------------------------------------------| || ----> funo (operao de leitura) || | || | ---------> argumentos || --- ------- ---------- || EXEC CICS |READ| |DATASET| |('FILEA') | || ---- |RIDFLD | |(KEYNUM) | || |INTO | |(REG_FILEA)| || |UPDATE;| ----------- || ------ || ------> opes || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    32/164

    Pag. 29

    Manipulao de erro de comandos CICS/MVS

    Condies de Exceo

    Uma condio de exceo representa um erro ou uma situao anormal que ocorredurante a execuo de um comando CICS/MVS. Por exemplo, o comando CICS/MVSabaixo utilizado para leitura de um arquivo VSAM:

    ------------------------------------------------------------------------------| || EXEC CICS READ DATASET ('ARQVSAM') || RIDFLD (KEYNUM) || INTO (REG_FILEA); || |------------------------------------------------------------------------------

    Durante a execuo deste comando poder ocorrer um dos seguintes erros:

    1. Registro duplicado; (DUPREC)2. registro no foi encontrado; (NOTFND)3. nome do arquivo no conhecido pelo CICS/MVS; (DSIDERR)4. o arquivo no est aberto; (NOTOPEN)5. fim de arquivo; (ENDFILE)6. etc.

    Estes erros possuem cdigos pr-definidos pelo CICS/MVS, que esto mostradosa direita de cada erro. Cada comando CICS/MVS possui uma srie de errosassociados (ver APNDICE B), que indicam os erros possveis de seremtratados pelo programa de aplicao. Estes cdigos so utilizados pelo comandoHANDLE CONDITION (ver prximo tem) para tratamento dos erros pelo programa deaplicao sem que haja a necessidade de um trmino anormal. Estes cdigos serolistados juntamente com os comandos que a eles estiverem associados.

    Os restantes dos erros so aqueles que no podem ser tratados pelo programade aplicao, de modo que eles so tratados automaticamente pelo CICS/MVS,gerando um trmino anormal com um cdigo de ABEND que esto listados noAPNDICE C.

  • 7/28/2019 Manual Cics (Dimcic21)

    33/164

    Pag. 30

    H A N D L E C O N D I T I O N

    Comando de manipulao de erros em comandos CICS/MVS. Este comando ativa umLABEL (PL/I) para onde ser transferido o controle do fluxo de execuo do pro-grama de aplicao, caso ocorra um erro que est especificado neste comando (vertem anterior). O desvio para o LABEL feito automaticamente via comando "GO

    TO" do PL/I, logo este LABEL no pode ser um LABEL que determina uma subrotinainterna (PROC).

    ------------------------------------------------------------------------------| F o r m a t o || || || EXEC CICS HANDLE CONDITION opo { (argumento) } || ... || { opo { (argumento) }} ; || |------------------------------------------------------------------------------

    Onde :

    opo Palavra chave que identifica a condio de exceo. Podem ser espe-cificadas at 16 condies em UM NICO comando HANDLECONDITION em qualquer ordem.

    argumento LABEL (rtulo) dentro do programa ao qual o CICS/MVS deve passar ocontrole quando ocorrer a condio de exceo especificada no co-mando.

    O comando HANDLE CONDITION deve ser colocado sempre antes do comando CICS/MVSao qual os erros que sero tratados estejam associados. Este comando deve serexecutado para que a condio especificada fique ativa, para quando ocorrer oerro esperado, o controle seja transferido para o LABEL designado pelo comando.Se o comando HANDLE CONDITION no for executado antes de ocorrer o erro, o pro-grama de aplicao ir terminar anormalmente com um cdigo de ABEND que repre-

    senta o erro que no foi tratado pelo HANDLE CONDITION. Por exemplo, o cdigoAEIV corresponde ao erro LENGERR que no foi tratado pelo programa de aplicaovia comando HANDLE CONDITION.

    Normalmente coloca-se todos os HANDLE CONDITION's no incio do programa deaplicao, para que todos os LABEL's fiquem ativos j no incio da execuo, an-tes de executar qualquer comando CICS/MVS, e tambm para melhor visualizao doserros que esto sendo tratados.

  • 7/28/2019 Manual Cics (Dimcic21)

    34/164

    Pag. 31

    ------------------------------------------------------------------------------| ... || --> EXEC CICS HANDLE CONDITION LENGERR (TAMERR) --------------- || | DUPREC (DUPLIC) ; ------------ | || | /* Comando de leitura de arquivo sequencial do CICS/MVS */| | || --- EXEC CICS READQ TD QUEUE('TDQUEUE') | | |

    | INTO (REG_QUEUE); | | || VOLTA: IF ERRO_TAM = 'S' THEN | | || ... | | || DUPLIC: MENSAGEM = 'REGISTRO DUPLICADO';

  • 7/28/2019 Manual Cics (Dimcic21)

    35/164

    Pag. 32

    O comando HANDLE CONDITION ativado a partir do momento em que ele executado at:

    * o trmino da tarefa;* outro comando HANDLE CONDITION para essa mesma condio seja executado.

    Para se desativar um HANDLE CONDITION para uma certa condio deve seexecutar um outro HANDLE CONDITION com a mesma condio, mas sem o LABEL para oqual ser transferido o controle da execuo. Depois de desativado a condio,se esta condio ocorrer, a tarefa ir ABENDar com cdigo de ABENDcorrespondente a esta condio.

    ------------------------------------------------------------------------------| || ... || --> EXEC CICS HANDLE CONDITION LENGERR (TAMERR); ------------ || | ... | || --- EXEC CICS RECEIVE INTO (AREA); | || ... | || /* Este comando desativa o HANDLE LENGERR anterior */ | |

    | --> EXEC CICS HANDLE CONDITION LENGERR ; ----------------- | || | ... | | || | ------------------------------------------------ | | || | | ABENDa pela condio LENGERR uma vez que o |

  • 7/28/2019 Manual Cics (Dimcic21)

    36/164

    Pag. 33

    H A N D L E C O N D I T I O N E R R O R

    Este comando um HANDLE CONDITION especial que especifica o tratamento detodos as condies de exceo dos comandos CICS/MVS por um nico LABEL, excetoaquelas condies que j possuem seus HANDLE CONDITION's especificados.

    ------------------------------------------------------------------------------| F o r m a t o || || EXEC CICS HANDLE CONDITION ERROR (label) ; || |------------------------------------------------------------------------------

    Onde:

    label LABEL (rtulo) dentro do programa de aplicao ao qual o CICS/MVSdever transferir o controle da execuo, quando da ocorrncia dequalquer tipo de erro possvel de ser tratado pelo programa deaplicao.

    ------------------------------------------------------------------------------| E x e m p l o || || DCL MSG CHAR (80); || ----> EXEC CICS HANDLE CONDITION LENGERR (ERRO_TAM) -------------- || | -> EXEC CICS HANDLE CONDITION ERROR (ERRO_GENERICO) ; ----- | || | | ... | | || | |

  • 7/28/2019 Manual Cics (Dimcic21)

    37/164

    Pag. 34

    I G N O R E C O N D I T I O N

    Este comando usado para ignorar certas condies de exceo. Isto , seocorrer a condio de exceo especificada neste comando, esta simplesmente serdesprezada como se nada tivesse ocorrido.

    ------------------------------------------------------------------------------| F o r m a t o || || EXEC CICS IGNORE CONDITION opo || ... || { opo } ; || |------------------------------------------------------------------------------

    Onde:

    Opo Palavra chave que identifica a condio de exceo. Podem ser especifi-cadas at 12 condies em UM NICO comando em qualquer ordem.

    ------------------------------------------------------------------------------| E x e m p l o || || ... || - -> EXEC CICS IGNORE CONDITION DUPREC - - - - - - - - - || ' LENGERR; ' || ' ... ' || - -- EXEC CICS READ DATASET('ARQVSAM') INTO(AREA_VSAM) ' || RIDFLD(KEY_NUM); ' || IF CHAVE_VSAM = 123 THEN

  • 7/28/2019 Manual Cics (Dimcic21)

    38/164

    Pag. 35

    O p o N O H A N D L E

    Pode-se usar esta opo em qualquer comando CICS/MVS para especificar quenenhuma ao dever ser tomada para qualquer condio de exceo que ocorra naexecuo do comando.

    ------------------------------------------------------------------------------| F o r m a t o || || EXEC CICS funo { { opo { (argumento) }} || . . . || { opo { (argumento) }} } || NOHANDLE; || |------------------------------------------------------------------------------

    ------------------------------------------------------------------------------| E x e m p l o || || ... |

    | REG_TS_ANT = ' '; || EXEC CICS READQ TS QUEUE ('TSFILA') INTO (REG_TS); || DO WHILE (REG_TS = REG_TS_ANT); || REG_TS_ANT = REG_TS; || EXEC CICS READQ TS QUEUE ('TSFILA') INTO (REG_TS)-- Abend IOERR --:lw|| NOHANDLE; |:lw|| IF REG_TS = REG_TS_ANT THEN

  • 7/28/2019 Manual Cics (Dimcic21)

    39/164

    Pag. 36

    O p o R E S P

    Esta opo pode ser usada em qualquer comando CICS/MVS, para especificar quenenhuma ao dever ser tomada para qualquer condio de exceo que ocorra naexecuo de um comando CICS/MVS, e que, tambm seja retornado para o argumentodesta opo o RESPONSE CODE da execuo deste comando.

    Este RESPONSE CODE poder ser verificado com a ajuda da funo "DFHRESP" parasaber se a execuo do comando CICS/MVS foi normal ou se ocorreu alguma condiode exceo (ver exemplo).

    ------------------------------------------------------------------------------| F o r m a t o || || EXEC CICS funo { { opo { (argumento) }} || . . . || { opo { (argumento) }} } || RESP (data-area); || |------------------------------------------------------------------------------

    onde:RESP (data-area) , receber o RESPONSE CODE

    (ver tabela abaixo) da execuo de um comando CICS/MVS,que contm esta opo.

    -------------------------------------------------------------------------|Cond. Exceo | RESP |Cond. Exceo | RESP |Cond. Exceo | RESP |-------------------------------------------------------------------------|CBIDERR | 62 |INVLDC | 41 |OVERFLOW | 40 ||DISABLED | 84 |INVMPSZ | 38 |PARTNFAIL | 66 ||DSIDERR | 12 |INVPARTN | 65 |PGMIDERR | 27 ||DSSTAT | 46 |INVPARTNSET | 64 |QBUSY | 25 ||DUPKEY | 15 |INVREQ | 16 |QIDERR | 44 ||DUPREC | 14 |INVTSREQ | 30 |QZERO | 23 |

    |ENDDATA | 29 |IOERR | 17 |RDATT | 02 ||ENDFILE | 20 |ISCINVREQ | 54 |RETPAGE | 32 ||ENDINPT | 08 |ITEMERR | 26 |ROLLEDBACK | 82 ||ENQBUSY | 55 |JIDERR | 43 |RTEFAIL | 33 ||ENVDEFERR | 56 |LENGERR | 22 |RTESOME | 34 ||EOC | 06 |MAPFAIL | 36 |SELNERR | 47 ||EODS | 05 |NOJBUFSP | 45 |SESSBUSY | 60 ||EOF | 04 |NONVAL | 09 |SESSIONERR | 58 ||ERROR | 01 |NOPASSBKRD | 50 |SIGNAL | 24 ||EXPIRED | 31 |NOPASSBKWR | 51 |SYSBUSY | 59 ||FUNCERR | 48 |NOSPACE | 18 |SYSIDERR | 53 ||IGREQCD | 57 |NOSTART | 10 |TERMERR | 81 ||IGREQID | 39 |NOSTG | 42 |TERMIDERR | 11 ||ILLOGIC | 21 |NOTALLOC | 61 |TRANSIDERR | 28 ||INBFMH | 07 |NOTAUTH | 70 |TSIOERR | 35 ||INVERRTERM | 37 |NOTFND | 13 |UNEXPIN | 49 ||INVEXITREQ | 63 |NOTOPEN | 19 |WRBRK | 03 |-------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    40/164

    Pag. 37

    ------------------------------------------------------------------------------| E x e m p l o || || DCL RET_CODE BIN FIXED (31); || ... || EXEC CICS READQ TS QUEUE ('TSFILA') INTO (REG_TS) |

    | RESP(RET_CODE); || DO WHILE (RET_CODE = DFHRESP(NORMAL)); || /* processa registro */ || ... || EXEC CICS READQ TS QUEUE ('TSFILA') INTO (REG_TS) || RESP (RET_CODE); || END; || IF RET_CODE = DFHRESP(ITEMERR) THEN || DO; || /* processa erro tipo ITEMERR */ || ... || END; || ... || |

    ------------------------------------------------------------------------------Observao : Esta opo mais a verificao do RESPONSE CODE com a funo DFHRESP

    poder substituir o comando HANDLE CONDITION, com a vantagem, deque o programa se torne mais estruturado, por no haver o desvioincondicional via comando "GO TO" implcito.

  • 7/28/2019 Manual Cics (Dimcic21)

    41/164

    Pag. 38

    CONTROLE DE TERMINAL

    O Terminal Control Program (TCP) o mdulo de gerncia que proporciona oINTERFACE de comunicao com o programa de aplicao. O programa de aplicaoinvoca o TCP que ento controla as comunicaes com os terminais na rede.

    ------------------------------------------------------------------------------| || ------- ------------- || |termi- | ---- Programa de | || | nal 1---- | | Aplicao 1 | || ----- | ------------ | ------------- || ----- | | Terminal --- || ------- --- Control | ------------- || | Program -------- Programa de | || ------- | | | Aplicao 2 | || |termi- -------- (TCP) | ------------- || | nal n| | --- || ----- ------------ | ------------- |

    | ----- ---- Programa de | || ------- | Aplicao n | || ------------- || |------------------------------------------------------------------------------

    Mdulo de Controle de Terminal (TCP)

    Este mdulo controla todas as operaes de terminal utilizando-se dos mtodosde acesso de telecomunicao (ACF/VTAM, BTAM ou TCAM). As funes prim riasdeste mdulo so:

    -----------------------------------------------------------------------------| POLLING | ADDRESSING |-----------------------------------------------------------------------------

    |Checagem peridica dos terminais para |Checagem para verificar se um deter- || verificar se h alguma entrada a ser | minado terminal est pronto para ||transmitida para ser processada por um | receber alguma sada. || programa de aplicao. | |-----------------------------------------------------------------------------

    O TCP realiza tambm as seguinte funes:

    * Solicita para que os terminais enviem suas transaes;

    * Transfere dados entre o programa de aplicao e o terminal: Todas astransferncias de dados so pedidas pelo programa de aplicao mas soexecutadas pelo TCP;

  • 7/28/2019 Manual Cics (Dimcic21)

    42/164

    Pag. 39

    * Manuseia as exigncias de comunicao de HARDWARE: O TCP respons vel pelatransmisso real de uma mensagem por linhas de comunicao. Isto poderia en-volver a traduo da mensagem no cdigo de transmisso requerido, inserindoou removendo caracteres de controle de transmisso, e manipulando asexigncias de endereamento para certos tipos de terminais;

    * Pesquisa a Terminal Control Table (TCT): Cada terminal na rede identifi-cado por uma entrada nica na TCT. A entrada chamada Terminal ControlTable Terminal Entry (TCTTE). Quando os dados estiverem prontos para seremenviados para o terminal, uma indicao posta na TCTTE. O TCP pesquisa aTCT periodicamente e faz com que os dados sejam enviados para os respectivosterminais;

    * Pede a iniciao de uma nova tarefa: Quando um operador entrar umaidentificao de transao, o CICS/MVS inicia uma nova tarefa. Todos os co-mandos de I/O encontrados durante a execuo desta tarefa so endereadosexclusivamente ao terminal que entrou a identificao da transao.

    Para resumir:

    * Uma transao inicia uma tarefa;* O terminal que enviou a transao - e somente esse terminal - est associado

    com a tarefa em particular.

    a associao entre o terminal de envio e a tarefa que permite que ooperador escreva comandos de terminal em seu programa de aplicao sem identifi-car qual terminal ser realmente usado quando o programa for executado.

    Este mdulo tambm faz a manipulao de erros de I/O, e tambm mantm umaamarrao de quais tarefas esto associados com quais terminais.

    O TCP usa a TCT (Terminal Control Table) para ajudar nas operaes de con-trole de terminal.

    ------------------------------------------------------------------------------|Terminal Control Table (TCT) || || A TCT mantm informaes do tipo: caractersticas da linha de comunicao, ||tipos de terminais, dispositivos especiais, prioridades de terminal, ||sequncia de POLLING e dados operacionais (tais como: indicao de que um ||determinado terminal est temporariamente inativo e que ele deve ser excludo ||da sequncia do POLLING). |------------------------------------------------------------------------------

    Terminal Input/Output Area (TIOA)

    Quando um terminal enviar uma transao para o Terminal Control Program, aentrada colocada numa rea especial de I/O chamada rea deEntrada/Sada de Terminal (TIOA). Esta rea adquirida dinamicamente peloCICS/MVS antes de o programa de aplicao correspondente for carregado namemria. O pedido de transao colocado na memria consiste de uma identificaode transao de um a quatro caracteres tipicamente seguida de um caracter embranco e ento por dados de entrada. A identificao de transao identifica oprograma de aplicao a ser executado.

  • 7/28/2019 Manual Cics (Dimcic21)

    43/164

    Pag. 40

    Logo que o programa de aplicao para uma dada transao estiver na memria eem execuo, os dados de entrada na TIOA so deslocados da TIOA para a rea detrabalho definida no programa de aplicao. A transferncia de dados da TIOA manipulada pelo CICS/MVS - um processo que transparente para o programa deaplicao.

    Elementos do TCP

    * Terminal Control Table (TCT)

    * Terminal I/O Area (TIOA)

    * Mtodos de Acesso

    - BTAM (Basic Telecommunications Access Method)

    - TCAM (Telecommunications Access Method)

    - SAM (Sequential Access Method) - o mtodo de acesso paraterminais CRLP (Card Reader Line Printer) usado quando a instalaoainda no possui terminal de vdeo.

    - VTAM (Virtual Telecommunications Access Method)

    * Comandos

    - RECEIVE

    - SEND

  • 7/28/2019 Manual Cics (Dimcic21)

    44/164

    Pag. 41

    R E C E I V E

    Utilizado para a leitura de dados no formatados de um terminal ou de umaunidade lgica.

    ------------------------------------------------------------------------------

    | F o r m a t o || || EXEC CICS RECEIVE { INTO (data-area) / SET (pointer) } || LENGTH (data-area) ; || |------------------------------------------------------------------------------

    onde:

    INTO (data-area) Especifica uma vari vel elementar ou agregada (estrutura,tem de grupo) que ir receber os dados lidos do terminalou de uma unidade lgica.

    ------- --------------------------------| ABC...------------------------- || | | | |----- | V TIOA |----- | ------------ |------- | ------ABC... | |

    | PGM | ------------ || -------------- || | DSA | | || | V | || | ----------| || | |ABC... || || | ----------| || --------------- || | . . . | |

    | --------------- |--------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    45/164

    Pag. 42

    SET (pointer) Especifica uma vari vel do tipo POINTER do PL/I (ver ma-nual de PL/I) que ir receber o endereo da rea de BUFFERpara onde os dados foram lidos do terminal pela execuodo comando RECEIVE.

    ------- ------------------------------| ABC...----------------------------------|| | | TIOA ||----- | ------ X'0091FEB0' V|----- | | ------------|------- | | |ABC... ||

    | PGM | ------------|Obs. O endereo |-------------- |X'0091FEB0' no || DSA | | |e' o endereo || V | |real onde reside || -----------| |a TIOA, || |X'0091FEB0'|| |apenas um || -----------| |endereo |--------------- |

    fictcio. || . . . | ||--------------- |------------------------------

    LENGTH (data-area) Especifica uma vari vel que dever conter o tamanho m ximoda informao que ser lida do terminal pelo comandoRECEIVE. Esta vari vel deve ser do seguinte tipo etamanho: BINARY FIXED(15) - 2 bytes bin rios.

    Observao: Se o tamanho da informao recebida do ter-minal for diferente do tamanho especificadonesta opo, o CICS/MVS muda o valor dotamanho especificado pelo tamanho real dainformao recebida.

  • 7/28/2019 Manual Cics (Dimcic21)

    46/164

    Pag. 43

    Utilizando a opo SET podemos ter as seguintes situaes, dependendo dotamanho da informao recebida:

    1. Tamanho da informao recebida MENOR que a rea de trabalho definido no pro-grama de aplicao:

    Como a opo SET trabalha diretamente com endereos de memria, isto in-dica que o programa de aplicao est acessando posies de memrias a maisdo que permitido, que no faz parte dele.

    ---------------------------------------------------------------------------| TIOA || ------ || ----> |ABCDEF| XXXX || | ------ || | ----- -- || | 6 4 || DCL MENS CHAR(10) BASED(P); | || | ---------- |

    | | | 10 || -->tamanho V || esperado tamanho recebido || DCL TAM BIN FIXED (15) INIT(10); | || V || EXEC CICS RECEIVE SET(P) LENGTH (TAM); |---------------------------------------------------------------------------

    Se for movimentado algum contedo para esta rea, estar destrundoalgumas posies de memria, caracterizando um STORAGE VIOLATION (invaso derea), que poder causar srios danos ao CICS/MVS.

    2. Tamanho da informao recebida MAIOR que a rea de trabalho definido no pro-grama de aplicao:

    ---------------------------------------------------------------------------| TIOA || ---------- || ----> |ABCDEFGHIJ| || | ---------- || | ---- || | 6 || DCL MENS CHAR(06) BASED(P); || | ----------- || | 10 -->tamanho recebido || -->tamanho | || esperado | || DCL TAM BIN FIXED (15) INIT(6); V || EXEC CICS RECEIVE SET(P) LENGTH (TAM); |---------------------------------------------------------------------------

    O programa de aplicao ir acessar a informao truncada no tamanho darea de trabalho definido nele.

  • 7/28/2019 Manual Cics (Dimcic21)

    47/164

    Pag. 44

    Utilizando a opo INTO:

    1. Tamanho da informao recebida MENOR que a rea de trabalho definido no pro-grama de aplicao:

    ---------------------------------------------------------------------------| TIOA || MENS ------ || ---------- ----------|ABCDEF| XXXX tamanho | || esperado | || DCL TAM BIN FIXED (15) INIT(6); V || EXEC CICS RECEIVE INTO(MENS) LENGTH (TAM); |---------------------------------------------------------------------------

    Se no for tratado o HANDLE CONDITION LENGERR, ir abendar por estacondio.

  • 7/28/2019 Manual Cics (Dimcic21)

    48/164

    Pag. 45

    ------------------------------------------------------------------------------|Terminais modelo 3270 || || As telas dos terminais modelo 3270 podem mostrar at 1920 caracteres, que ||esto compostos em 24 linhas e 80 colunas. Isto , a tela est dividida ||logicamente como sendo uma tabela (ARRAY) bidimensional de 24 linhas por 80 |

    |colunas. E esta tabela inicializada pelo CICS/MVS com zeros bin rios ||(X'00') que representa fisicamente a tela limpa do terminal de vdeo. |------------------------------------------------------------------------------

    C o n d i o d e E x c e o

    -----------------------------------------------------------------------------| Condio de | Descrio || Exceo | |-----------------------------------------------------------------------------|LENGERR |Ocorre quando o tamanho da informao recebida for maior que o || |tamanho especificado na opo LENGTH. || | || | |

    | |Observao: Esta condio ocorre somente quando se utiliza a || | opo "INTO". |-----------------------------------------------------------------------------

    ------------------------------------------------------------------------------| E x e m p l o || ||1. Utilizando a opo SET: || || ---------- TIOA ------------- || X'000123FD' |EX01ABCDEF|

  • 7/28/2019 Manual Cics (Dimcic21)

    49/164

    Pag. 46

    ------------------------------------------------------------------------------| ||2. Utilizando a opo INTO: || || DCL TAM BIN FIXED(15) INIT(10), ------------- || 1 MSG_ENTRADA, ---EX01ABCDEF | |

    | 2 COD_TRANS CHAR(04),

  • 7/28/2019 Manual Cics (Dimcic21)

    50/164

    Pag. 47

    S E N D

    Utilizado para enviar dados no formatados a um terminal ou a uma unidadelgica.

    ------------------------------------------------------------------------------

    | F o r m a t o || || EXEC CICS SEND FROM (data-area) || { LENGTH (data-area) } || { ERASE } ; || |------------------------------------------------------------------------------

    onde:

    FROM (data-area) Especifica uma vari vel elementar ou agregada (estrutura,tem de grupo) onde ser armazenado a informao a ser en-viada para um terminal ou uma unidade lgica.

    LENGTH (data-area) Especifica uma vari vel ou uma constante inteira onde seindica o tamanho m ximo da informao que dever ser en-viada para um terminal ou uma unidade lgica. Pelo PL/I,esta vari vel deve ser uma vari vel bin ria de dois bytes(BIN FIXED(15)).

    Observao: Se esta opo no for especificada,Assume-se o tamanho da informao armazenadana vari vel especificada na opo FROM.

    ERASE Opo que indica que o contedo atual da tela dever serlimpa antes de enviar a informao.

    ----------------- ------------------

    |DIEX010234_ | |INFORMACAO NOVA || | | || | ERASE | || |---------->| || | | || | | || | | |----------------- ------------------

    tela antes tela depois

  • 7/28/2019 Manual Cics (Dimcic21)

    51/164

    Pag. 48

    1. Se a informao a ser enviada para o terminal for maior do que o tamanho es-pecificado na opo LENGTH, esta informao ser mostrada com os caracteresa direita truncados.

    ---------------------------------------------------------------------------| DCL TEXTO CHAR(24); |

    | TEXTO = 'MENSAGEM PARA O TERMINAL'; || EXEC CICS SEND FROM (TEXTO) LENGTH (10) ERASE; || ... || || ----------------- ------------------ || |DIEX_ | |MENSAGEM P | || | | | | || | | | | || | |----------->| | || | | | | || | | | | || | | | | || ----------------- ------------------ || tela antes tela depois |

    ---------------------------------------------------------------------------2. A informao enviada para o terminal sem a opo ERASE, ser mostrada a par-

    tir (inclusive) da posio em que o cursor estiver posicionado na tela. Se ocursor estiver posicionado sobre uma informao j existente, a novainformao ser mostrada sobreposta informao j existente.

    ---------------------------------------------------------------------------| DCL TEXTO CHAR(06) INIT('CURSOR'); || EXEC CICS SEND FROM (TEXTO) LENGTH (06); || ... || || ----------------- ------------------- || |A PARTIR DO _ | |A PARTIR DO CURSOR | |

    | | ---------------------------- | || | | | | || | |----------->| | || | | | | || | | | | || ----------------- ------------------- || tela antes tela depois || || ----------------- ------------------- || |A PARTIR DO | |A PARTCURSOR | || | ---------------------------- | || | | | | || | |----------->| | || | | | | || | | | | || ----------------- ------------------- || tela antes tela depois |---------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    52/164

    Pag. 49

    Observao: Quando a informao estiver relacionada com a qualidade dos dadosfornecidos, a opo "ERASE" no deve ser especificada.

    Ex.: 'CODIGO NAO NUMERICO' deve ser enviado sem a opo ERASE para que o ope-rador certifique-se de que realmente errou.

    -------------------------------------------------------------------------| DCL TEXTO CHAR(24); || DCL TAM BIN FIXED(15) INIT(18); || DCL 1 REG_ENTR, || 2 COD_TRA CHAR(04), || 2 CODIGO CHAR(05); || EXEC CICS RECEIVE INTO (REG_ENTR) LENGTH(TAM); || IF VERIFY(CODIGO,'0123456789') = 0 THEN || DO; || TEXTO = 'CODIGO NAO NUMEIRO'; || EXEC CICS SEND FROM (TEXTO); || EXEC CICS RETURN; || END; || ... |

    | || ------------------------------------- || |DIEX01A34_ | || | | || | ------------------------------------- || | |DIEX01A34CODIGO NAO NUMERICO | || | | | || | | | || | | | || ------------------ | || tela antes | | || -------------------------------------- || tela depois |-------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    53/164

    Pag. 50

    Controle de Programa

    Mdulo de Controle de Programa (PCP)

    O Program Control Program (PCP) o mdulo de gerncia do CICS/MVSrespons vel pela localizao dos programas de aplicao e, se necess rio,

    carreg -los na memria para execuo.

    Na ocasio em que uma tarefa requerer um dado programa de aplicao, tal pro-grama pode ou no estar na memria. Existem trs raz-es pelas quais um programapode j estar na memria na ocasio em que necessitado por uma tarefa.

    * Trata-se de um programa residente; isto , ele foi carregado na memriaquando o CICS/MVS foi inicializado.

    * Outra tarefa est usando o programa.

    * Outra tarefa usou o programa e a rea de memria no foi necess ria paranada mais, e o programa permanece na memria.

    Uma das funes do PCP determinar se o programa de aplicao solicitadoest ou no na regio/partio do CICS/MVS. Se o programa de aplicao no estna memria, o PCP carregar o programa. Uma segunda funo do PCP transferir ocontrole para o programa de aplicao, de modo que ele possa comear a execuo.Ele tambm respons vel pela transferncia de controle para eles e o retorno docontrole para o CICS/MVS quando os programas de aplicao tiverem completado aexecuo. O PCP tambm facilita um programa de aplicao que esteja transferindocontrole para outro programa de aplicao.

    Na execuo de suas funes de controle de programa, o PCP faz uso de umatabela chamada Processing Program Table (PPT). Existe uma entrada na tabelapara cada programa de aplicao. Cada entrada, contm, entre outras coisas, osseguintes tens:

    ---------------------------------------------- - - - -|Nome do PGM |Endereo de|Endereo|Linguagem de ||de aplicao| memria |de disco|program. usada|---------------------------------------------- - - - -

    O programador de sistemas respons vel pela definio dos programas na PPT.

    Quando uma tarefa termina, o programa de aplicao usado pela tarefa pode noser mais necess rio. Em muitos casos o CICS/MVS pode tornar a usar a rea dememria que o programa de aplicao ocupou. Se a tarefa que tiver sidorecentemente terminada a nica tarefa de usurio usando um programa deaplicao, ento a rea de memria est disponvel para outras finalidades. Seentretanto, diversas tarefas esto usando o mesmo programa de aplicao, comoacontece frequentemente, o CICS/MVS no pode tornar a usar a rea de memria.Para uma gerncia adequada da memria, o PCP necessita saber se existem tarefassimultneas usando o mesmo programa. O PCP obtm esta informao de um contadorde uso na entrada da PPT para tal programa de aplicao:

  • 7/28/2019 Manual Cics (Dimcic21)

    54/164

    Pag. 51

    ---------------------------------------------- - - -|Nome do PGM |Endereo de|Endereo|Linguagem de |Contador||de aplicao| memria |de disco|program. usada|de uso |---------------------------------------------- - - -

    Cada vez que uma tarefa comea usando um programa, o contador de uso incre-

    mentado. Cada vez que uma tarefa termina, o contador de uso diminuido. Quandoo contador de uso zero, o PCP autoriza o novo uso da rea ocupada pelo pro-grama de aplicao. Assim, uma das funes do PCP determinar quando os progra-mas de aplicao no so mais requeridos pelas tarefas.

    Os programas so carregado na memria virtual quando necess rios, a menos queeles estejam especificados na PPT como programas residentes.

    Os programas so reloc veis, isto , eles podem estar em diferenteslocalizaes na memria de uma execuo para a outra. Desta forma, a PPT e'utilizada pela PCP para localizao destes programas na memria durante aoperao do CICS/MVS.

    Elementos Utilizados pelo PCP

    * Processing Program Table (PPT)

    * Comandos :

    - RETURN

    - LINK

    - XCTL

    - LOAD

    - RELEASE

    - RETURN TRANSID

    - ABEND

  • 7/28/2019 Manual Cics (Dimcic21)

    55/164

    Pag. 52

    R E T U R N

    Utilizado para retornar o controle para:

    * o pragrama no nvel lgico imediatamente superior (retorno de uma subrotinaCICS/MVS), ou para o

    * CICS/MVS quando termina a tarefa.

    ------------------------------------------------------------------------------| F o r m a t o || || EXEC CICS RETURN; || |------------------------------------------------------------------------------

    Obs.: Deve ser codificado em todos os trminos lgicos do programa;

    ------------------------------------------------------------------------------

    | ------------------------------ -->-------------------- || |PGMEXM : PROC OPTIONS(MAIN); | | |PGM1 : PROC ... | || | . | | | . | || |EXEC CICS LINK | | | . | || | PROGRAM('PGM1');-------- | . | || | . C I C S / M V S || |END PGMEXM; | |

    | ------------------------------ || |------------------------------------------------------------------------------

  • 7/28/2019 Manual Cics (Dimcic21)

    56/164

    Pag. 53

    L I N K

    usado para passar o controle de um programa de aplicao de nvellgico superior para um programa de aplicao de nvel lgico inferior.

    ------------------------------------------------------------------------------

    | F o r m a t o || || EXEC CICS LINK PROGRAM ('nome') || { COMMAREA (data-area) || { LENGTH (data-value) }} || |------------------------------------------------------------------------------

    Onde:

    PROGRAM ('nome') Especifica a identificao de um programa de aplicaoao qual o controle ser passado, temporariamente. O nomeespecificado precisa consistir de at oito caracteresalfanumricos e precisa estar definido na PPT.

    Deve ser uma constante ou um campo alfanumrico contendoo nome de um programa de aplicao ao qual ser passadoo controle.

    Obs : Em nossa instalao a identificao do programade aplicao deve consistir de at 6 caracteresalfanumricos, comeando por um caracteralfabtico, necessariamente.

    COMMAREA (data-area) Especifica o nome de uma rea de trabalho onde estoarmazenados os dados a serem passados ao programa deaplicao ao qual o controle ser passado.

    LENGTH (data-value) Especifica o nome de uma rea de trabalho onde-se indica

    o comprimento m ximo dos dados que sero passados viaopo COMMAREA. Deve ser uma constante ou um campobin rio de dois bytes (BIN FIXED(15)). O valor m ximoaceito por esta vari vel de 32.767 bytes, oque indicaque, podemos passar como parmetro somente estaquantidade em bytes.

    Quando um programa de aplicao emite um comando LINK para outro programa deaplicao, o nome do programa chamado deve estar na PPT. Se no estiver, ocorrea condio de exceo PGMIDERR que um erro de identificao do programa.

    Quando o comando RETURN executado no programa LINKado (chamado), o controle retornado prxima instruo execut vel logo aps o comando LINK no programa deaplicao chamador (que emitiu o comando LINK).

  • 7/28/2019 Manual Cics (Dimcic21)

    57/164

  • 7/28/2019 Manual Cics (Dimcic21)

    58/164

    Pag. 55

    ------------------------------------------------------------------------------| || ||2. PASSANDO DADOS : || || |

    | Programa A || ----------------------- || |PROGR1: PROC OPTIONS...| || |DCL AREA CHAR(05); | || |. . . | endereo || |AREA = 'AAAAA';----------------------------------- || |EXEC CICS LINK | | Programa B | || | COMMAREA(AREA) | -------------V--------- || | PROGRAM('PROGR2');--------------->|PROGR2: PROC(P) OPTIONS| || |IF AREA = 'BBBBB' THEN

  • 7/28/2019 Manual Cics (Dimcic21)

    59/164

    Pag. 56

    X C T L

    usado para transferir (definitivamente) o controle de um programade aplicao a um outro de mesmo nvel lgico.

    ------------------------------------------------------------------------------

    | F o r m a t o || || EXEC CICS XCTL PROGRAM ('nome') || { COMMAREA (data-area) || { LENGTH (data-value) } } ; || |------------------------------------------------------------------------------

    Onde:

    PROGRAM ('nome') Especifica a identificao de um programa de aplicaoao qual o controle ser passado, definitivamente. O nomeespecificado precisa consistir de at oito caracteresalfanumricos e precisa estar definido na PPT.

    Deve ser uma constante ou um campo alfanumrico contendoo nome de um programa de aplicao ao qual ser passadoo controle.

    Obs : Em nossa instalao a identificao do programade aplicao deve consistir de at 6 caracteresalfanumricos, comeando por um caracteralfabtico, necessariamente.

    COMMAREA (data-area) Especifica o nome de uma rea de trabalho onde seencontram os dados a serem passados ao programa deaplicao ao qual o controle ser passado definiti-vamente.

    LENGTH (data-value) Especifica o nome de uma rea de trabalho onde se indicao comprimento m ximo dos dados que sero passados viaopo COMMAREA. Deve ser uma constante ou um campobin rio de dois bytes (BIN FIXED(15)). O valor m ximoaceito por esta vari vel de 32.767 bytes, oque indicaque, podemos passar como parmetro somente estaquantidade em bytes.

    Se um programa de aplicao chamado por um comando XCTL, o controle serpassado para o programa citado; entretanto o programa que emitiu o comando XCTLno tornar a ganhar o controle (o programa chamador liberado pela tarefa epode ser suprimido da memria se nenhuma outra estiver usando o mesmo).

  • 7/28/2019 Manual Cics (Dimcic21)

    60/164

    Pag. 57

    Quando um programa de aplicao emite um comando XCTL para outro programa deaplicao, o cdigo da transao (associado ao programa de aplicao) chamadodeve estar na PPT. Se no estiver ocorre a condio de exceo PGMIDERR que umerro de idenficao do programa.

    O comando XCTL dispensa o comando EXEC CICS RETURN no final do programa de

    aplicao.

    C o n d i o d e E x c e o

    -----------------