mf cics2 comandos

134
CICS Comandos

Upload: lfmendes01

Post on 27-Nov-2015

76 views

Category:

Documents


3 download

TRANSCRIPT

CICS

Comandos

MAR/2005

SUMÁRIO

24 – COMANDOS : INFORMAÇÕES GERAIS........................................................................5

Parâmetros comuns a diversos comandos...............................................................................................................................5

Retorno da execução de um comando.....................................................................................................................................8

25 – COMANDOS PARA TELA : ENVIAR E RECEBER DADOS...........................................9

RECEIVE MAP........................................................................................................................................................................9

SEND MAP..............................................................................................................................................................................12

SEND........................................................................................................................................................................................16

26 – COMANDOS PARA TRATAMENTO DE ARQUIVOS....................................................17

DELETE...................................................................................................................................................................................20

ENDBR.....................................................................................................................................................................................22

READ.......................................................................................................................................................................................23

READNEXT............................................................................................................................................................................25

READPREV.............................................................................................................................................................................27

RESETBR................................................................................................................................................................................30

REWRITE...............................................................................................................................................................................32

STARTBR................................................................................................................................................................................34

UNLOCK.................................................................................................................................................................................36

WRITE.....................................................................................................................................................................................37

27 – COMANDOS PARA TRANSFERÊNCIA DE CONTROLE ENTRE PROGRAMAS.......39

PROGA....................................................................................................................................................................................40

PROGA....................................................................................................................................................................................40

PROGB.....................................................................................................................................................................................40

LINK.........................................................................................................................................................................................41

RETURN..................................................................................................................................................................................45

XCTL........................................................................................................................................................................................47

Exemplo de programa com diversas funções CICS.............................................................................................................49

2

Exemplo de programa com LINK.........................................................................................................................................50

Exemplo de programa com passagem de dados via RETURN...........................................................................................51

28 – COMANDOS PARA MANIPULAÇÃO DE TS / TD.........................................................52

DELETEQ...............................................................................................................................................................................52

READQ TD..............................................................................................................................................................................54

READQ TS..............................................................................................................................................................................56

WRITEQ TD...........................................................................................................................................................................59

WRITEQ TS............................................................................................................................................................................61

29 – OUTROS COMANDOS...................................................................................................63

ASKTIME................................................................................................................................................................................63

ASSIGN....................................................................................................................................................................................63

BIF DEEDIT............................................................................................................................................................................63

ENTER.....................................................................................................................................................................................64

ENTER TRACEID..................................................................................................................................................................64

ENTER TRACEID..................................................................................................................................................................64

FORMATTIME......................................................................................................................................................................66

HANDLE ABEND...................................................................................................................................................................69

HANDLE AID.........................................................................................................................................................................73

HANDLE CONDITION.........................................................................................................................................................75

IGNORE CONDITION..........................................................................................................................................................76

POP HANDLE.........................................................................................................................................................................77

PUSH HANDLE......................................................................................................................................................................77

SYNCPOINT...........................................................................................................................................................................77

APÊNDICES...........................................................................................................................78

EXEC Interface Block - EIB fields........................................................................................................................................79

Resumo comandos CICS........................................................................................................................................................88

EIBRESP Codes (covers codes produced from I/O calls)...................................................................................................93

Retornos / Handle Conditions................................................................................................................................................94

3

ASSIGN’s : informações que podem ser obtidas.................................................................................................................96

ABENDS mais comuns do CICS............................................................................................................................................98

4

24 – Comandos : informações gerais

Parâmetros comuns a diversos comandos

Recebe dados digitados em uma área de um programa aplicativo.A posição do cursor após o RECEIVE MAP é colocada em EIBCPOSN, e o terminal attention identifier (AID) é colocado em EIBAID. Se dados devem ser recebidos, deve-se especificar opção INTO ou SET. Se o RECEIVE foi emitido somente para detectar o attention identifier (AID), pode-se omitir tanto o INTO quanto o SET.

STATEPara comandos APPC (Advanced Program-to-Program Communications), como ALLOCATE e CONNECT PROCESS. Esses comandos permitem ao CICS enviar dados e receber dados de outro programa que esteja sendo executado em um sistema remoto, numa conversa.Somente 1 programa pode enviar dados num determinado instante, embora todos possam enviar no transcorrer da conversa. As regras que controlam qual programa pode enviar dados em qual instante dependem do conversation state. Ele é um atributo local da conversa, cujo valor muda dependendo dos comandos APPC emitidos pelo programa local. Um programa pode verificar qual o conversation state usando a opção STATE num comando APPC ou usando o comando EXTRACT ATTRIBUTES. O conversation state é retornado como um dos valores a seguir de CVDA (CICS-value data areas) :

ALLOCATED , CONFFREE , CONFRECEIVE , CONFSEND FREE , PENDFREE , PENDRECEIVE , RECEIVE ROLLBACK , SEND , SYNCFREE , SYNCRECEIVE SYNCSEND

Programar conversas APPC é denominado Distributed Transaction Processing (DTP).

Ver detalhes em “CICS Intercommunication Guide”.

SYSID(systemname)Para sistemas remotos (não locais) : identifica o sistema (CICS) remoto com o qual será feito algum tipo de interface.

The SYSID option appears on the ALLOCATE command and most file services, timer services, program execution, temporary storage and transient data commands. It is a four-character name. Each CICS region has a local SYSID. On TXSeries CICS, it is configured in the LocalSysId attribute of the Region Definition (RD) entry. In addition, a TXSeries CICS region may have entries in the Communications Definitions (CD), each of which defines a connection to a remote system. The name of a CD entry is referred to as a remote SYSID or a connection name. These remote SYSIDs are only known to the local region and do not have to match the name of the remote system at the other end of the connection.

The SYSID option on the ALLOCATE command allows an application to specify a remote SYSID only. This is because ALLOCATE is starting a Distributed Transaction Processing (DTP) conversation with a program running on a remote system.

5

The SYSID option on other commands may be a local or a remote SYSID. It is used to specify where the resource resides.

If the local SYSID is specified, the resource resides on the local CICS region. The resource must be defined in the local resource definition. In addition, the local definition for the resource must not have the RemoteSysId attribute set to a remote SYSID, or CICS generates an AEY9 abnormal termination. If a remote SYSID is specified, CICS sends the command, using an intersystem request, on the connection defined for the SYSID. The system receiving the request must be a CICS region. If the SYSID option is not specified on a file services, timer services, program execution, temporary storage or transient data command, it defaults to the value in the RemoteSysId attribute of the resource's local definition. If RemoteSysId="" or it is set to the local SYSID, the command runs locally. If RemoteSysId is set to a remote SYSID, CICS sends the command, using an intersystem request, on the connection defined for the SYSID. Again, the receiving system must be CICS.

Any application using the SYSID option on file services, timer services, program execution, temporary storage or transient data commands to request a remote SYSID, must have RSLCheck=none set in Transaction Definitions (TD) entry of the invoking transaction. Otherwise, CICS raises the NOTAUTH condition. This is because the SYSID option causes local security checking to be bypassed, so CICS allows its use only by transactions that do not require RSL checking.

See the CICS Intercommunication Guide for further information on DTP conversations and using intersystem requests to access resources on other CICS regions.

LENGTH / FLENGTHIn COBOL and PL/I, the translator can set the value of certain lengths. This means they are optional in programs that specify data areas.

If you use the ENQ command without a LENGTH option, CICS assumes the command is applied to an address (for example the CWA). If you use the ENQ command with a LENGTH option, CICS assumes the command is applied to a name (which can be between one and 255 bytes long).

When a CICS command includes the LENGTH option, you generally express this option as a signed 16-bit binary value (the command description tells you what the value should be). This places a theoretical upper limit of 32767 bytes on LENGTH. In practice (depending on conventions of recoverability, function shipping, and so on) the achievable upper limit varies from command to command, but is somewhat less than this theoretical maximum.

The FLENGTH option, where available, allows you to specify any length value up to 2048 megabytes, but for application portability, it is recommended that you do not use more than 24 megabytes. Certain commands have limits significantly below this. For example, RECEIVE and SEND have a limited FLENGTH of 32767 bytes.

6

DATASET(fileid)Indica o filename do arquivo a ser usado. Identico ao FILE()

FILE(fileid)Usa-se em todos os comandos de arquivos.Indica o filename do arquivo a ser usado. Coloca-se o nome do arquivo (ddname) entre apóstrofes (literal) ou o nome de uma variável dentro da qual deve haver (no momento da execução do comando) o nome do arquivo.

NOHANDLEIndica que se deseja que o CICS não processe nenhuma condição ou attention identifier (ATD) que resulte da execução de um comando. Se especificado, cobre TODAS as condições que possam ocorrer no comando com NOHANDLE; o comando IGNORE CONDITION vale para condições especificadas para todos os comandos (até que o seu efeito seja mudado por um comando HANDLE CONDITION).Cuidado com NOHANDLE no comando RECEIVE, pois o NOHANDLE se sobrepõe ao HANDLE AID e ao HANDLE CONDITION, o que resulta no fato de o CICS ignorar os retornos de PF’s.

INPARTN(name) Somente para terminais que suportam partições (indica o nome, com 1 a 2 caracteres, da partição na qual o operador do terminal deve digitar os dados).

KEYLENGTH e RIDFLDSe não for usada GENERIC key , o parâmetro KEYLENGTH deve sempre ser igual ao tamanho da chave inteira. Além disso, KEYLENGTH indica o tamanho da variável RIDFLD.

INTO e SETSe um programa usa o comando RECEIVE, deve-se especificar INTO ou SET, para indicar onde os dados serão recebidos.

INTO(variavel) Usar INTO se o programa tem um buffer para o CICS colocar os dados (um mapa, por exemplo).

SET(ptr-ref) Usar SET se desejar que o CICS obtenha um buffer de entrada e lhe entregue os dados neles (via pointer). Observar que o CICS reusa a área de buffer.Indica o ponteiro que deve ser posicionado com o endereço do prefixo de 12 bytes da área de dados do mapa. Se houver TIOAPFX=YES no mapa, o pointer retornado contem o endereço do prefixo da TIOA. Os dados do usuário começam no deslocamento 12 a partir do início da TIOA. A referência é válida até o próximo receive ou o fim da task.

If an application issues a RECEIVE command simply to test whether a terminal user has pressed an attention identifier (AID) key, you can leave out both the INTO and the SET option. If an application uses a RECEIVE to accept an AID, ensure that the application issues a HANDLE AID command before the RECEIVE.

7

NOEDFEsta opção faz com que o comando não seja interceptado pelo EDF.

RESP e RESP2Para testar se o CICS chegou numa determinada condição ao executar um comando.No caso do comando SET, a condição INVREQ pode ocorrer por mais de uma razão; neste caso pode-se usar o RESP2 para analisar a condição ocorrida.

RESP(variável)A variável deve ser um campo binário de 4 bytes.Após a execução do comando ela contém o valor correspondente à condição ocorrida, ou, se foi normal.A vantagem é poder usar a função DFHRESP com o respectivo condition name para testar como foi a operação. Exemplo em Cobol:

EXEC CICS WRITEQ TS FROM('abc') QUEUE(qname) RESP(xxx)END-EXEC.IF xxx = DFHRESP(NOSPACE) THEN ...

Exemplo em PL/I :

EXEC CICS WRITEQ TS FROM('abc') QUEUE(qname) RESP(xxx);IF xxx = DFHRESP(NOSPACE) THEN ...

O uso do RESP implica em NOHANDLE; portanto, cuidado com o RESP no RECEIVE, pois o NOHANDLE se sobrepõe um eventual HANDLE AID ou HANDLE CONDITION que haja. Essa característica faz com que muitas vezes o RESP seja usado para obter / testar a última tecla.

RESP2(variável) A variável deve ser um campo binário de 4 bytes.Após a execução do comando, ela contém complemento do RESP (apenas para INQUIRE e SET).

Retorno da execução de um comando

Recebe dados digitados em uma área de um programa aplicativo.A posição do cursor após o RECEIVE MAP é colocada em EIBCPOSN, e o terminal attention identifier (AID) é colocado em EIBAID. Se dados devem ser recebidos, deve-se especificar opção INTO ou SET. Se o RECEIVE foi emitido somente para detectar o attention identifier (AID), pode-se omitir tanto o INTO quanto o SET.

8

25 – Comandos para tela : enviar e receber dados

RECEIVE MAP

Recebe dados digitados em uma área de um programa aplicativo.A posição do cursor após o RECEIVE MAP é colocada em EIBCPOSN, e o terminal attention identifier (AID) é colocado em EIBAID. Se dados devem ser recebidos, deve-se especificar opção INTO ou SET. Se o RECEIVE foi emitido somente para detectar o attention identifier (AID), pode-se omitir tanto o INTO quanto o SET.

Sintaxe

EXEC CICS RECEIVE MAP() < SET() | INTO() > < MAPSET() > < FROM() < LENGTH() > < MAPPINGDEV() < AID() > < CURSOR() > > | TERMINAL < ASIS > < INPARTN() > >END-EXEC

Parâmetros

ASIS Indica que o que for digitado em minúsculo não deve ser convertido para maiúsculo (não se aplica ao primeiro RECEIVE de uma transação ou se a tela tem dados antes de a transação ser iniciada).

FROM(data-area) Indica a área de dados que contém os dados a serem mapeados. Isto deve incluir o prefixo de 12 bytes gerado pelo parâmetro TIOAPFX=YES das macros DFHMDI e DFHMSD.

INTO(data-area) Indica o nome da área onde os dados devem ser colocados. Se não for especificado, o nome default é o nome do mapa sufixado da letra I.

LENGTH(data-value)Indica o tamanho da área (colocado em uma half-word). Não deve ser maior que o tamanho especificado no parâmetro FROM, mas o LENGTH deve incluir os 12 bytes de prefixo gerados pelo TIOAPFX=YES nas macros DFHMDI e DFHMSD.

MAP(name) Indica o nome do mapa (1-7 caracteres).

MAPSET(name) Indica o nome do mapset (1-7 caracteres).

TERMINAL Indica que os dados de entrada devem ser lidos do terminal que originou a transação.

9

Exemplos

EXEC CICS RECEIVE INTO (WS-ATIV-ENTRADA) LENGTH (WS-LEN-RECEIVE) END-EXEC.

EXEC CICS RECEIVE MAP('PRINC') MAPSET('TABMTRJ') INTO(PRINCI) END-EXEC

Retornos

Algumas condições podem ocorrer combinadas; neste caso, somente uma é passada para o programa. EIBRCODE, entratanto, indica TODAS as condições ocorridas.

EOC Se a RU (request/response unit) foi recebida com end-of-chain. Somente para LU’s (logical units). Default action: ignorado.

EODS Ocorre se não foram recebidos dados (somente um FMH). Vale para 3770 batch LUs e 3770/3790 batch data interchange LUs. Default: task terminada anormalmente.

INVMPSZ Se o mapa é grande demais para o terminal. Default : task terminada anormalmente

INVPARTN Se a partição especificada não está definida no partition set associado ao programa. Default : task terminada anormalmente

INVREQ Se o comando RECEIVE MAP é emitido numa task nonterminal (tasks nonterminal não tem TIOA ou TCTTE). Default : task terminada anormalmente

MAPFAIL Se os dados tem tamanho zeroou não contém SBA. Ocorre também se o programa emite o comando RECEIVE MAP e o operador responde pressionando a CLEAR ou uma PA key, ou ENTER ou PF key sem ter digitado dados. Default : task terminada anormalmente

PARTNFAIL Se o operador do terminal tenta digitar mais de 3 vezes dados numa partiçãoque não seja a especificada na opção INPARTN. Default : task terminada anormalmente

10

RDATT Se o comando RECEIVE MAP é terminado pelo operador pressionando uma ATTN key que não a RETURN (só para 2741). Default : ignorado.

UNEXPIN Se dados inesperados ou irreconhecíveis são recebidos. Somente para terminais batch. Default : task terminada anormalmente

11

SEND MAP

Envia dados do mapa para o terminal.

Sintaxe :

SEND MAP(name)ACCUMALARMCURSOR(data-value)DATAONLYERASE[|DEFAULT|ALTERNATE|ERASEAUP|]FMHPARM(name)FORMFEEDFREEKBFROM(data-area)FRSET|LDC(name)|[ACTPARTN(name)|OUTPARTN(name)]LENGTH(data-value)MAPONLYMAPSET(name)MSR(data-value)NLEOMNOEDIT <MAPPED>|ACCUM<<JUSFIRST|JUSLAST|JUSTIFY()><HEADER()><TRAILER()>>NOFLUSH|L40|L64|L80|HONEOM| PAGINGPRINTREQID(name)SET(ptr-ref) < MAPPingdev() > | PAGING | TERMINAL < WAIT > < LAST >

Parâmetros

ACCUM Indica que é um comando que faz parte de uma mensagem lógica (completada por SEND PAGE ou deletada por PURGE MESSAGE).

ACTPARTN(name) Somente para terminais que suportam partições. Indica o nome (1-2 caracteres) da partição a ser ativada.

ALARM Indica que o alarme deve ser ativado.

ALTERNATE Indica que o terminal deve usar o tamanho de tela ALTERNATE.

CURSOR(data-value) Indica onde o cursor deve ser posicionado após o SEND MAP. O campo indicado em data-value deve ser uma half-word.

DATAONLY

12

Indica que somente dados do programa devem ser enviados. Os bytes de atributo devem ser especificados para cada campo.

DEFAULT Indica que o terminal deve usar o tamanho de tela DEFAULT.

ERASE Indica que o buffer (ou partição) deve ser limpo e o cursor deve voltar para o canto superior esquerdo após o SEND. IMPORTANTE : em qualquer transação, a primeira operação de SEND deve sempre ter ERASE.

ERASEAUP Indica que antes da exibição, todos os campos não protegidos (All UnProtected) devem ser limpos.

FMHPARM(name) Somente para LU 3650.

FORMFEED Indica que deve ser feito pulo para a próxima página (em terminais impressores). Neste caso, lembrar que o controle de FORMFEED deve estar no início do buffer; o programa (mapa) não pode por nenhuma informação nele.

FREEKB Indica que o teclado deve ser destravado após a exibição dos dados.

FROM(data-area) Indica a área com os dados a enviar. Se omitido, assume o nome do mapa com o sufixo O. A área deve incluir os 12 bytes de prefixo da opção TIOAPFX=YES das macros DFHMDI e DFHMSD.

FRSET Indica que os MDTs de todos os campos devem ser posicionados na condição de “unmodified” (field reset) antes de o mapa ser exibido.

HONEOM Indica que deve ser usado o tamanho default da linha da impressora.

LAST Somente para LU’s.

LDC(name) Indica o nome do logical device code (LDC).

LENGTH(data-value) Indica o tamanho dos dados (numa half-word). Deve incluir os 12 bytes de prefixo.

MAP(name) Indica o nome do mapa a ser usado (1-7 caracteres).

MAPONLY Indica que somente os dados default do mapa devem ser enviados.

13

MAPSET(name) Indica o nome do mapset (1-7 caracteres) a ser usado.

MSR(data-value) Somente para cartucho de fitas em terminais 8775 ou 3643.

NLEOM Indica que os dados de impressao devem ter brancos e o caracter NL (new line) , além do caracter de EOM (end of message). Deve ser especificao para o primeiro comando SEND MAP usado para construir uma logical message.

NOFLUSH Indica que o CICS não deve limpar as páginas ao final, mas deve retornar o controle ao programa (com a condição OVERFLOW posicionada em EIBRESP).

OUTPARTN(name) Indica o nome (1-2 caracteres) da partição para a qual os dados devem ser enviados.

PAGING Indica que os dados de saída não devem ser enviados imediatamente para o terminal, mas colocados em TS e exibidos em resposta a comandos de paginação dados pelo operador.

PRINT Indica que uma operação de impressão deve ser iniciada numa impressora 3270.

REQID(name) Indica um prefixo de 2 caracteres a ser usado como parte do TS identifier para CICS message recovery.

TERMINAL Indica que os dados de saída devem ser enviados para o terminal que iniciou a transação.

WAIT Indica que o controle não deve ser retornado ao aplicativo até que a operação de saída tenha sido completada. Se WAIT não for especificado, o controle volta ao aplicativo quando a operação foi iniciada, mas ainda não terminou.

Exemplos

EXEC CICS SEND MAP('PRINC') MAPSET('TABMTRJ') FROM(PRINCO) ERASE FREEKB END-EXEC

EXEC CICS SEND FROM (WS-AREA-RETORNO) LENGTH (100) ERASE END-EXEC.

14

Retornos

Algumas condições podem ocorrer combinadas; neste caso, somente uma é passada para o programa. EIBRCODE, entratanto, indica TODAS as condições ocorridas.

IGREQCD Se houve uma tentativa de executar um comando SEND MAP depois que um comando SIGNAL data-flow control com RCD code foi recebido de uma LUTYPE4. Default : task terminada anormalmente

IGREQID Se o prefixo especificado em REQID é diferente do estabelecido por um REQID anterior, ou do default estabelecido para esta mensagem logica --REQID (**). Default : task terminada anormalmente

INVLDC Se o mnemônico LDC especificado não está incluido n alista LDC para a LU. Default : task terminada anormalmente

INVMPSZ Se o mapa é grande demais para o terminal.

INVPARTN Se a partição especificada não está definida no partition set associado ao aplicativo. Default : task terminada anormalmente

OVERFLOW Se os dados não cabem na página. Default : condição ignorada.

RETPAGE Se a opção SET for especificada e uma página completada está pronta para retorno ao aplicativo. Default : controle volta ao aplicativo no ponto seguinte ao SEND MAP.

TSIOERR Erro irrecuperável de I/O em TS. Default : task terminada anormalmente

WRBRK Somente para 2741. Default : condição ignorada.

15

SEND

Sintaxe

EXEC CICS SEND TEXT FROM() < LENGTH() > < FMHPARM() > < REQID() > < CURSOR() > < LDC() | < ACTPARTN() > < OUTPARTN() > > < MSR() > < SET() | PAGING | TERMINAL < WAIT > < LAST > > < PRINT > < FREEKB > < ALARM > < L40 | L64 | L80 | HONEOM > < ERASE < DEFAULT | ALTERNATE > > < NLEOM > < NOEDIT < MAPPED > | ACCUM << JUSFIRST | JUSLAST | JUSTIFY() > < HEADER() > < TRAILER() > > > < FORMFEED >

Exemplos

EXEC CICS SEND TEXT FROM (WS-TEXTO3) LENGTH (+60) END-EXEC.

16

26 – Comandos para tratamento de arquivos

RESUMO DE COMANDOS PARA TRATAMENTO DE ARQUIVOS VSAM

Leitura de registros

Leitura direta

o READ

Leitura sequencial (browsing)

o STARTBR

o READNEXT

o READPREV

o RESETBR

o ENDBR

Leitura skip-sequencial

o READNEXT

Atualização de registros

REWRITE

UNLOCK

Deleção de registros

DELETE

Inclusão de registros

WRITE

17

LEITURA DIRETA (em KSDS)Deve-se identificar / fornecer : a chave (inteira) do registro que se deseja ler (obtenção de registro único – Unique key)) ou a chave parcial (primeiras n posições à esquerda) do registro no qual deseja-se “posicionar” o

arquivo para que as leituras seqüenciais subseqüentes obtenham os registros desejados (Generic Key).

LEITURA SEQUENCIAL - BROWSING (em KSDS) Inicia-se o browse com o comando STARTBR, identificando o registro (inicial) de forma

análoga à leitura direta. No entanto, o STARTBR não disponibiliza o registro, apenas “posiciona” o arquivo no

registro desejado, para que o READNEXT emitido em seguida efetue a leitura propriamente dita.

READNEXT lê seqüencialmente (à frente) desde o ponto marcado pelo STARTBR (pode-se posicionar o arquivo no início colocando low-values na chave para posicionamento do STARTBR).

READPREV lê seqüencialmente (para trás) desde o ponto marcado pelo STARTBR (pode-se posicionar o arquivo no final colocando high-values na chave para posicionamento do STARTBR).

RESETBR pode ser utilizado para reposicionar o arquivo em outro registro. Para terminar uma seqüência de Browse, é obrigatório dar o comando ENDBR.

ATUALIZAÇÃO (em KSDS) Para atualizar o conteúdo de um registro, deve-se acessá-lo inicialmente através de sua leitura

(READ UPDATE). Após obtido o registro, providencia-se sua modificação pelo aplicativo, e, em seguida, através do REWRITE efetua-se sua atualização.

Cada REWRITE deve estar associado a um READ UPDATE através de um elemento comum (especificado em TOKEN).

READ UPDATE providencia o LOCK e, após o REWRITE (ou não) deve-se providenciar o UNLOCK.

INCLUSÃO (em KSDS) Deve-se preparar o registro a ser incluído, identificar a chave que irá ser a base para inclusão

na area de dados e nos índices (através do parâmetro Ridfld) e emitir o comando WRITE. Para atualizar o conteúdo de um registro, deve-se acessá-lo inicialmente através de sua

leitura. Após obtido o registro,

DELEÇÃO (em KSDS) Para deletar UM registro : acessá-lo inicialmente através de sua leitura (READ UPDATE);

após obtido o registro, providencia-se sua deleção através do DELETE (sem Ridfld). Para deletar UM CONJUNTO de registros, utilizar o comando DELETE com generic key :

todos os registros com chave que casem com a parte (que deve ter tamanho menor que a chave total) da chave especificada serão deletados; a quantidade de registros deletados é devolvida para o programa se for especificada a opção NUMREC.

18

DELETE

Função Retornos

O DELETE elimina (deleta) um registro lógico de um arquivo.

É necessário que antes tenha sido dado um comando READNEXT ou READPREV co UPDATE para deletar o registro lido (se houver duplicidade de chave é responsabilidade do programa acessar cada um dos registros e deletar um a um).

CHANGED DISABLED DUPKEY FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LOADING LOCKED NOTAUTH NOTFND NOTOPEN RECORDBUSY SYSIDERR

Sintaxe

EXEC CICS DELETE FILE() < SYSID() > < TOKEN() | RIDFLD() < KEYLENGTH() < GENERIC < NUMREC() > > > > < RBA | RRN > < NOSUSPEND >END-EXEC

Parâmetros

FILE(filename) nome do arquivoGENERIC (Somente Vsam KSDS) indica que a chave de pesquisa é genérica

(KEYLENGTH é menor que o tamanho da chave total).KEYLENGTH(data-value) tamanho da chave (em uma halfword, em binário) para comparação,

que está no RIDFLD.NOSUSPEND não aguardar se o registro estiver com LOCK.NUMREC(data-area) (Somente para Vsam KSDS) : especifica uma halfword onde o CICS

coloca, em binário, o número de registros deletados.RBA indica que o RIDFLD especifica um rba (relative byte address) indica

para VSAM KSDSRIDFLD(data-area) (Record IDentification FieLD) = area que contém a chave do registro

que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

RRN para RRDS;TOKEN(data-area) Somente para RLS; identificador para este READ UPDATE (valor em

binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

19

Exemplos

EXEC CICS DELETE FILE('TABA552') RIDFLD(AGCOD) KEYLENGTH(7) GENERIC NUMREC(NUMDEL) END-EXEC

20

ENDBR

Função Retornos

O ENDBR termina um browse. DISABLED FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LOADING NOTAUTH NOTFND NOTOPEN SYSIDERR

Sintaxe

EXEC CICS ENDBR FILE() < SYSID() > < REQID( +00000 ) >END-EXEC

Parâmetros

FILE(filename) nome do arquivoREQID(data-value) Indica um valor (em uma half-word, em binário), que identifica o

browse a ser terminado, quando se usa multiplos browses num mesmo arquivo.

Exemplos

EXEC CICS ENDBR FILE(‘TABA501’)END-EXEC.

21

READ

Função Retornos

Para o leitura de um registro de um arquivo VSAM.

DISABLED DUPKEY FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LENGERR LOADING LOCKED NOTAUTH NOTFND NOTOPEN RECORDBUSY SYSIDERR

Sintaxe :

EXEC CICS READ FILE() < SYSID() > ( SET() | INTO() ) < LENGTH() > RIDFLD() < KEYLENGTH() < GENERIC > > < RBA | RRN | DEBREC | DEBKEY > < GTEQ | EQUAL > < UNCOMMITTED | CONSISTENT | REPEATABLE | UPDATE < TOKEN() > > < NOSUSPEND >END-EXEC

Parâmetros

CONSISTENT (RLS only)|DEBKEY|DEBREC|RBA|RRN|

DBEKEY e DEBREC : para DBAM blocado; RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

EQUAL ou GTEQ condição para READ genérico : igual ou (maior ou igual)FILE(filename) nome do arquivoGENERIC chave base para pesquisaINTO(data-area) nome da área para leitura do registroKEYLENGTH(data-value) tamanho para comparação de GENERIC KEYNOSUSPEND não aguardar se o registro estiver com LOCK.REPEATABLE (RLS only)REQID(data-value) Indica um valor (em uma half-word, em binário), que identifica o

browse a ser terminado, quando se usa multiplos browses num mesmo arquivo.

RIDFLD(data-area) (Record IDentification FieLD) = area que contém a chave do registro

22

que se deseja lerSET o CICS deve providenciar um buffer para a leitura, e retornar sua

localização para o aplicativo, após nele colocar o registro lido.TOKEN(data-area) identificador para este READ UPDATE (valor em binário numa

fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

UNCOMMITTED Registro lido sem integridade de leitura (mesmo que haja (esteja havendo) alguma atualização nele por outra task.

UPDATE Indica que o registro deve ser obtido (lido) para que se possa efetuar um update ou delete. Se não for especificado, assume read-only.

Exemplos

EXEC CICS READ INTO (RG-TABA537-537) LENGTH (WS-LEN-TABA537) KEYLENGTH (WS-KEYLEN-TABA537) DATASET ('TABA537') RIDFLD (ST-CHV-ARQ-537) UPDATE END-EXEC.

EXEC CICS READ INTO(WS-REGTABEMP) FILE('TABEMP') RIDFLD(CODEMP) END-EXEC.

EXEC CICS READ INTO(WS-REGTABEMP) LENGTH(RECLEN) FILE('TABEMP') RIDFLD(CODEMP) KEYLENGTH(4) GENERIC GTEQ UPDATE END-EXEC.

23

READNEXT

Função Retornos

Usado para efetuar leitura sequencial para a frente de registros em um arquivo (leitura sequencial = browse).

A sequência de READNEXT`s deve iniciar por um STARTBR e o fim deve ser por um ENDBR.

UDATE pode ser especificado somente se o arquivo estiver sendo acesado no modo RLS (UPDATE não pode ser especificado no STARTBR ou RESETBR).

CICS suporta somente 1 TOKEN num browse; o TOKEN de um (cada) READNEXT invalida o TOKEN anterior.

DUPKEY ENDFILE FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LENGERR LOADING LOCKED NOTAUTH NOTFND RECORDBUSY SYSIDERR

Sintaxe

EXEC CICS READNEXT FILE() < SYSID() > ( SET() | INTO() ) < LENGTH() > RIDFLD() < KEYLENGTH() > < REQID( +00000 ) > < RBA | RRN > < UNCOMMITTED | CONSISTENT | REPEATABLE | UPDATE TOKEN() > < NOSUSPEND >END-EXEC

Parâmetros

CONSISTENT (RLS only)

FILE(filename) nome do arquivo

INTO(data-area) nome da área para leitura do registro

KEYLENGTH(data-value)tamanho da chave (em uma halfword, em binário) para comparação, que está no RIDFLD.

LENGTH(data-area) Tamanho (em uma halfword, em binário) do registro a ser lido.

NOSUSPENDnão aguardar se o registro estiver com LOCK.

24

|RBA|RRN|RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

REPEATABLE (RLS only)

REQID(data-value) Indica um valor (em uma half-word, em binário), que identifica um browse, quando se usa multiplos browses num mesmo arquivo.

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

SETo CICS deve providenciar um buffer para a leitura, e retornar sua localização para o aplicativo, após nele colocar o registro lido.

SYSID(systemname)para sistemas remotos (não locais)

TOKEN(data-area)identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

UNCOMMITTEDRegistro lido sem integridade de leitura (mesmo que haja (esteja havendo) alguma atualização nele por outra task.

UPDATEIndica que o registro deve ser obtido (lido) para que se possa efetuar um update ou delete. Se não for especificado, assume read-only.

Exemplos

EXEC CICS READNEXT DATASET ('TABA538') RIDFLD (ST-CHV-ARQ-538) INTO (RG-TABA538-538) END-EXEC.

EXEC CICS READNEXT DATASET ('TABP138') INTO (RG-TABA538-538) LENGTH (LENGTH OF RG-TABA538-538) RIDFLD (ST-CHV-ALTER-538) NOHANDLE END-EXEC.

25

READPREV

Usado para efetuar leitura sequencial para trás de registros em um arquivo (leitura sequencial = browse).

A sequência de READPREV`s deve iniciar por um STARTBR e o fim deve ser por um ENDBR. UDATE pode ser especificado somente se o arquivo estiver sendo acesado no modo RLS

(UPDATE não pode ser especificado no STARTBR ou RESETBR). CICS suporta somente 1 TOKEN num browse; o TOKEN de um (cada) READPREV invalida o

TOKEN anterior.

Sintaxe

EXEC CICS READPREV FILE() < SYSID() > ( SET() | INTO() ) < LENGTH() > RIDFLD() < KEYLENGTH() > < REQID( +00000 ) > < RBA | RRN > < UNCOMMITTED | CONSISTENT | REPEATABLE | UPDATE TOKEN() > < NOSUSPEND > END-EXEC

Parâmetros

CONSISTENT (RLS only)

FILE(filename) nome do arquivo

INTO(data-area) nome da área para leitura do registro

KEYLENGTH(data-value)tamanho da chave (em uma halfword, em binário) para comparação, que está no RIDFLD.

LENGTH(data-area) Tamanho (em uma halfword, em binário) do registro a ser lido.

NOSUSPENDnão aguardar se o registro estiver com LOCK.

|RBA|RRN|RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

REPEATABLE (RLS only)

26

REQID(data-value) Indica um valor (em uma half-word, em binário), que identifica um browse, quando se usa multiplos browses num mesmo arquivo.

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

SETo CICS deve providenciar um buffer para a leitura, e retornar sua localização para o aplicativo, após nele colocar o registro lido.

TOKEN(data-area)Somente para RLS; identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

SYSID(systemname)para sistemas remotos (não locais)

TOKEN(data-area)Somente para RLS; identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

UNCOMMITTEDRegistro lido sem integridade de leitura (mesmo que haja (esteja havendo) alguma atualização nele por outra task.

UPDATEIndica que o registro deve ser obtido (lido) para que se possa efetuar um update ou delete. Se não for especificado, assume read-only.

Exemplos

EXEC CICS READPREV DATASET ('TABA538') RIDFLD (ST-CHV-ARQ-538) INTO (RG-TABA538-538) END-EXEC.

EXEC CICS READPREV DATASET('TABA505') LENGTH(WS-LEN) INTO(RG-TABA505-505) RIDFLD(ST-CHV-ARQ-505) NOHANDLE END-EXEC.

27

Retornos

DUPKEY ENDFILE FILENOTFOUND INVREQ IOERR ISCINVREQ LENGERR LOCKED NOTAUTH NOTFND RECORDBUSY SYSIDERR

28

RESETBR

Usado para reposicionar um arquivo durante um browse (o reposicionamento pode também ser feito, ao invés de usar o RESETBR, se modificar o RIDFLD antes de um READNEXT ou READPREV) ou para mudar as características do browse (indicadas no STARTBR ; as características que podem ser alteradas são as especificadas nas opções GENERIC, GTEQ, e RBA).

Sintaxe

EXEC CICS RESETBR FILE() < SYSID() > RIDFLD() < KEYLENGTH() < GENERIC > > < REQID( +00000 ) > < RBA | RRN > < GTEQ | EQUAL >END-EXEC

Parâmetros

FILE(filename) nome do arquivo

GENERIC = (VSAM KSDS) chave base para pesquisa (tamanho especificado em KEYLENGTH).

GTEQ ou EQUALcondição para READ genérico : igual ou (maior ou igual)

KEYLENGTH(data-value)tamanho da chave (em uma halfword, em binário) para comparação, que está no RIDFLD.

REQID(data-value) Indica um valor (em uma half-word, em binário), que identifica um browse, quando se usa multiplos browses num mesmo arquivo.

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

|RBA|RRN|RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

SYSID(systemname)para sistemas remotos (não locais)

29

Exemplos

EXEC CICS RESETBR FILE ('TABA501') RIDFLD (ST-CHV-ARQ-501)END-EXEC

Retornos

FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ NOTAUTH NOTFND SYSIDERR

30

REWRITE

O REWRITE atualiza (in-place) um registro lógico num arquivo. Deve-se antes emitir um READ com a opção UPDATE.

Sintaxe

EXEC CICS REWRITE FILE() < SYSID() > FROM() < LENGTH() > < TOKEN() > < NOSUSPEND >END-EXEC

Parâmetros

FILE(filename) nome do arquivo

FROM(data-area) nome da área para regravação do registro

LENGTH(data-area) Tamanho (em uma halfword, em binário) do registro a ser atualizado.

NOSUSPENDnão aguardar se o registro estiver com LOCK.

SYSID(systemname)para sistemas remotos (não locais)

TOKEN(data-area)Somente para RLS; identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

Exemplos

EXEC CICS REWRITE FROM(RECORD) FILE('MASTER') TOKEN(APTOK) END-EXEC

EXEC CICS REWRITE DATASET ('TABA538') FROM (RG-TABA538-538) LENGTH (WS-LEN-TABA538) END-EXEC

31

Retornos

CHANGED DUPREC FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LENGERR NOTFND LOCKED NOSPACE NOTAUTH RECORDBUSY SYSIDERR

32

STARTBR

O STARTBR posiciona (somente ponteiros !!!) um arquivo num ponto especificado, para, a partir daí, efetuar browse. IMPORTANTE : o STARTBR NÃO LÊ registro nenhum; o registro somente será lido quando for emitido um READ NEXT ou READ PREV. O posicionamento pode ser feito com base na chave (primária ou alternada) do registro (KSDS ou data-table), no RBA (normal ou alternado) (KSDS ou ESDS), no RRN (RRDS)

Sintaxe

STARTBR FILE(filename) [SYSID()] RIDFLD(data-area) [KEYLENGTH() [GENERIC] ] [REQID(data_value)] [RBA | RRN | DEBREC | DEBKEY ] [GTEQ | EQUAL ]

Parâmetros

EQUAL ou GTEQ condição para READ genérico : igual ou (maior ou igual)

FILE(filename) Nome do arquivo a ser acessado.

GENERIC = (VSAM KSDS) chave base para pesquisa (tamanho especificado em KEYLENGTH).

KEYLENGTH(data-value) Tamanho da chave (colocado em uma harf-word, em binário). Obrigatório se GENERIC foi especificado.

|DEBKEY|DEBREC|RBA|RRN|DBEKEY e DEBREC : para DBAM blocado; RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

REQID(data-value) Indica um valor (em uma half-word, em binário), que identifica um browse, quando se usa multiplos browses num mesmo arquivo.

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

SYSID(systemname)

33

para sistemas remotos (não locais)Exemplos

EXEC CICS READ INTO (RG-TABA537-537) LENGTH (WS-LEN-TABA537) END-EXEC.

EXEC CICS STARTBR DATASET ('TABA538') RIDFLD (ST-CHV-ARQ-538) END-EXEC.

EXEC CICS STARTBR FILE ('TABA627') RIDFLD (ST-CHV-TAB-627) KEYLENGTH (WS-KEY-LEN) GTEQ NOHANDLE END-EXEC

Retornos

DISABLED FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LOADING NOTAUTH NOTFND NOTOPEN SYSIDERR

34

UNLOCK

O UNLOCK libera um recurso (registro lógico) previamente colocado em lock por meio de um READ com UPDATE.

Sintaxe

EXEC CICS UNLOCK FILE() < SYSID() > < TOKEN() > END-EXEC

Parâmetros

FILE(filename) nome do arquivo

SYSID(systemname)para sistemas remotos (não locais)

TOKEN(data-area)Somente para RLS; identificador para este READ UPDATE (valor em binário numa fullword) : valor retornado para o aplicativo pelo CICS, para uso em (eventual futuro) REWRITE / DELETE / UNLOCK referente ao registro trazido por um READ UPDATE.

Exemplos

EXEC CICS UNLOCK FILE(‘TABA501’)END-EXEC

Retornos

DISABLED FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ NOTAUTH NOTOPEN SYSIDERR

35

WRITE

O WRITE grava (adiciona) um registro lógico (novo) num arquivo. Os conteúdos do campo chave no registro e no campo RIDFLD devem ser o mesmo.

Sintaxe

EXEC CICS WRITE FILE() < SYSID() > FROM() < LENGTH() > RIDFLD() < KEYLENGTH() > < RBA | RRN > < MASSINSERT > < NOSUSPEND > END-EXEC

Parâmetros

FILE(filename) nome do arquivo

FROM(data-area) Indica a área de onde deve ser obtido o registro lógico a ser gravado.

KEYLENGTH(data-value)tamanho da chave (em uma halfword, em binário) para comparação, que está no RIDFLD.

LENGTH(data-area) Tamanho (em uma halfword, em binário) do registro a ser lido.

MASSINSERT Indica que o WRITE é parte de um conjunto (operação de inclusão em massa).

NOSUSPENDnão aguardar se o registro estiver com LOCK.

|RBA|RRN|RRN : para RRDS; RBA : indica que o RIDFLD especifica um rba (relative byte address) indica para VSAM KSDS

RIDFLD(data-area)(Record IDentification FieLD) = area que contém a chave do registro que se deseja ler; se for x’FF’ em todos os bytes, indica preparação para browse com READPREV.

SYSID(systemname)para sistemas remotos (não locais)

36

Exemplos

EXEC CICS WRITE DATASET ('TABA538') FROM (RG-TABA538-538) LENGTH (WS-LEN-TABA538) KEYLENGTH (WS-KEYLEN-TABA538) RIDFLD (ST-CHV-ARQ-538) END-EXEC

Retornos DISABLED DUPREC FILENOTFOUND ILLOGIC INVREQ IOERR ISCINVREQ LENGERR LOADING LOCKED NOSPACE NOTAUTH NOTOPEN RECORDBUSY SUPPRESSED SYSIDERR

37

27 – Comandos para transferência de controle entre programas

Application program logical levels

38

CICS

LINK PROGANível 0

PROGA

RETURN

Nível 1

CICS

LINK PROGANível 0

PROGA

XCTL PROGB

PROGB

RETURN

Nível 1

39

TBT9

Transação TBT9 :

Programa : PROGA

TBT9

Transação TBT9 :

Programa : PROGA

LINK

Efetua o link com outro programa (chamada para transferência de controle), esperando que haja retorno para o programa CHAMADOR. Quando o comando RETURN for emitido pelo programa CHAMADO, o controle é retornado a ele, na instrução subseqüente ao LINK.Durante a execução do programa CHAMADO, valem os processos (handling conditions, attention id’s, abends, etc) dele e não do chamador; quando o controle retorna ao chamador, passam a valer novamente os processos do CHAMADOR.

Sintaxe

EXEC CICS LINK PROGRAM() < COMMAREA() < LENGTH() > < DATALENGTH() > > < SYSID() > < SYNCONRETURN > < TRANSID() > < INPUTMSG() < INPUTMSGLEN() > >END-EXEC

Parâmetros

COMMAREA(data-area) Indica a communication area que deve ser passada para o pragrama chamado (em COBOL, o programa chamado deve dar a ela o nome de DFHCOMMAREA).

DATALENGTH(data-value) Indica uma halfword que contem, em binário, o tamanho da área (contígua) de comunicação (COMMAREA), a ser passada para o programa chamado (o qual, é conveniente que verifique o tamanho).

INPUTMSG(data-area) Indica o nome da área que tem os dados a serempassados para o programa chamado (no primeiro RECEIVE). Os dados ficam disponíveis até o RECEIVE.

INPUTMSGLEN(data-value) Indica o nome da halfword que deve conter, em binário, o tamanho da área passada (INPUTMSG).

LENGTH(data-value) Indica o tamanho (em binário, numa halfword), em bytes, da communication area (máximo = 32500 bytes).

PROGRAM(name) Indica o nome do programa para o qual o controle deve ser passado. Uso de apóstrofes : EXEC CICS LINK PROGRAM('PROGX')

PROGX é o nome do programa EXEC CICS LINK PROGRAM(DAREA)

DAREA é o nome de uma área (variável) que contém o nome do programa

SYNCONRETURNPara sistemas remotos (não locais)

40

SYSID(systemname)para sistemas remotos (não locais)

TRANSID(name)Indica o nome da transação “espelho” que a região remota deve “attachar” e sob a qual deve ser executado o programa (se não especificado, assume CSMI, CPMI, ou CVMI).

Exemplo

EXEC CICS LINK PROGRAM(PROGNAME) COMMAREA(COMA) LENGTH(LENA) DATALENGTH(LENI) SYSID('CONX') END-EXEC

Retornos

INVREQ, LENGERR, NOTAUTH, PGMIDERR, ROLLEDBACK, SYSIDERR, TERMERR

INVREQ RESP2 values: 8 A LINK command with the INPUTMSG option is issued for a program that is not associated

with a terminal, or that is associated with an APPC logical unit, or an IRC session. 14 The SYNCONRETURN option is specified but the program issuing the link request (the client

program) is already in conversation with a mirror task in the remote region specified on the SYSID option. (That is, a unit of work (UOW) is in progress, or the system initialization parameter MROFSE=YES has been specified in the client region.) In this case, the client program is in an incorrect state to support the SYNCONRETURN option.

15 The program issuing the link request is already in conversation with a mirror task and the TRANSID specified is different from the transaction identifier of the active mirror.

16 The TRANSID specified is all blanks. 17 The TRANSID supplied by the dynamic routing program is all blanks. 19 A LINK command with the INPUTMSG option is issued for a program that is the subject of a

DPL request; that is, SYSID is also specified. 30 The program manager domain has not yet been initialized. This is probably due to a link request

having been made in a first stage PLT. 41 A LINK has been attempted to a Java program while there is already a JVM program on the

link stack. 43 A LINK has been attempted to a hot-pooled Java program object while there is already a hot-

pooled program on the link stack. 44 A LINK has been attempted to a Java program, but the JVMpool is disabled. 45 A LINK has been attempted to a Java program, but the JVM profile cannot be found. 46 A LINK has been attempted to a Java program, but the JVM profile is not valid. 47 A LINK has been attempted to a Java program, but the system properties file cannot be found. 48 A LINK has been attempted to a Java program, but the user class cannot be found. Default action: terminate the task abnormally. Note: RESP2 values are not returned to the client for conditions occurring in a DPL server program.

41

LENGERR RESP2 values: 11 The COMMAREA length is less than 0 or greater than 32767. 12 The length specified on the DATALENGTH option is a negative value. 13 The length specified on the DATALENGTH option is > the length specified on the LENGTH option. 26 The COMMAREA address is zero, but the COMMAREA length is non zero. 27 The INPUTMSG length is < 0 or > 32767. Also occurs in any of the following situations:

The length specified on the LENGTH option is greater than the length of the data area specified in the COMMAREA option, and

while that data was being copied a destructive overlap occurred because of the incorrect length. Default action: terminate the task abnormally. Note: RESP2 values are not returned to the client for conditions occurring in a DPL server program.

NOTAUTH RESP2 values: 101 A resource security check has failed on PROGRAM(name). Default action: terminate the task abnormally.

PGMIDERR RESP2 values: 1 A program has no entry in the PPT and either program autoinstall was switched off, or the

program autoinstall control program indicated that the program should not be autoinstalled. 2 A program is disabled. 3 A program could not be loaded because

This was the first load of the program and the program load failed, usually because the load module could not be found.

This was a subsequent load of the program, but the first load failed. In order to reset the load status the load module must be in the DFHRPL concatenation, and

a SET PROGRAM NEWCOPY will be required. 21 The program autoinstall control program failed either because the program autoinstall control

program is incorrect, incorrectly defined, or as a result of an abend in the program autoinstall control program. Program autoinstall is disabled and message DFHPG0202 or DFHPG0203 written to the CSPL.

22 The model returned by the program autoinstall control program was not defined in the PPT table, or was not enabled.

23 The program autoinstall control program returned invalid data. 24 Define for the program failed due to autoinstall returning an invalid program name or

definition. 25 The dynamic routing program rejected the link request. Default action: terminate the task abnormally. Note: RESP2 values are not returned to the client for conditions occurring in a DPL server program.

ROLLEDBACK RESP2 values: 29 The SYNCONRETURN is specified and the server program is unable successfully to take a syncpoint. The server program has taken a rollback, and all changes made to recoverable resources in the remote region, within the current unit of work, are backed out. Default action: terminate the task abnormally.

42

SYSIDERR RESP2 values: 18 The SYSID specified cannot be found in the intersystem table. 20 The remote system specified by SYSID is an LUTYPE6.1-connected system. Distributed

program link requests are not supported on LUTYPE6.1 connections. Notes: 1. There is no local queuing in the event of a SYSIDERR. 2. RESP2 values are not returned for conditions occurring on DPL requests.

28 The remote system specified by SYSID is not in service.This response can also indicate that the transaction has not been defined on the remote system.

29 The remote system specified by SYSID is in service, but there are no sessions available, and the dynamic routing program has chosen not to queue the link request.

31 The request to allocate a session to the remote system has been rejected. 32 The queue of allocate requests for sessions to the remote system has been purged. Default action: terminate the task abnormally.

TERMERR RESP2 values: 17 An irrecoverable error occurs during the conversation with the mirror (for example, if the session fails, or if the server region fails). Default action: terminate the task abnormally. Note: RESP2 values are not returned to the client for conditions occurring in a DPL server program.

43

RETURN

Retorna o controle para o programa chamador (ou , em última instância, para o CICS).

Sintaxe

EXEC CICS RETURN < TRANSID() < COMMAREA() < LENGTH() > > < IMMEDIATE > > < INPUTMSG() < INPUTMSGLEN() > > < ENDACTIVITY > END-EXEC

Parâmetros

COMMAREA(data-area) Indica a communication area que deve ser passada para o pragrama chamado (em COBOL, o programa chamado deve dar a ela o nome de DFHCOMMAREA). A commarea é liberada antes de o próximo programa ser iniciado; uma cópia dela é criada e um pointeiro é passado.

ENDACTIVITY Somente para programas com BTS (Business Transaction Services) activities.

IMMEDIATE Assegura que a commarea seja passada para o programa correto; pode ser usado somente pelo programa dce mais alto nível (o que retornar o controle para o CICS).

INPUTMSG(data-area) Indica o nome da área que tem os dados a serempassados para o programa chamado (no primeiro RECEIVE). Os dados ficam disponíveis até o RECEIVE.

INPUTMSGLEN(data-value) Indica o nome da halfword que deve conter, em binário, o tamanho da área passada (INPUTMSG).

LENGTH(data-value) Indica o tamanho (em binário, numa halfword), em bytes, da communication area (máximo = 32500 bytes).

TRANSID(name) Indica o nome da transação (1-4 caracteres) a ser usada com a próxima mensagem de entrada do terminal da task que emitiu o RETURN.

Exemplos

EXEC CICS RETURN END-EXEC.

EXEC CICS RETURN TRANSID('TBTJ') COMMAREA(WS-CTRL-MAPA) END-EXEC.

44

Retornos

INVREQ, LENGERR

INVREQ RESP2 values: 1 A RETURN command with the TRANSID option is issued in a program that is not associated

with a terminal. 2 A RETURN command with the COMMAREA or IMMEDIATE option is issued by a program

that is not at the highest logical level. 4 A RETURN command with the TRANSID option is issued in a program that is associated with

an APPC logical unit. 8 A RETURN command with the INPUTMSG option is issued for a program that is not

associated with a terminal, or that is associated with an APPC logical unit, or an IRC session. 30 PG domain not initialized. Parameters are not allowed on the EXEC RETURN statement in first

stage PLT programs. 200 A RETURN command is issued with an INPUTMSG option by a program invoked by DPL. Default action: terminate the task abnormally.

LENGERR RESP2 values: 11 The COMMAREA length is less than 0 or greater than 32763. 26 The COMMAREA ADDRESS passed was zero, but the commarea length was non-zero. 27 The INPUTMSG LENGTH was less than 0 or greater than 32767. Default action: terminate the task abnormally.

45

XCTL

Transfere o controle de um programa para outro (num mesmo nível). O programa emitente do XCTL é liberado (encerrado).Se o programa para o qual o controle é transferido não está carregado na memória, ele é carregado.

Sintaxe

EXEC CICS XCTL PROGRAM() < COMMAREA() < LENGTH() > > < INPUTMSG() < INPUTMSGLEN() > >END-EXEC

Parâmetros

COMMAREA(data-area) Indica a communication area que deve ser passada para o pragrama chamado (em COBOL, o programa chamado deve dar a ela o nome de DFHCOMMAREA).

INPUTMSG(data-area) Indica o nome da área que tem os dados a serempassados para o programa chamado (no primeiro RECEIVE). Os dados ficam disponíveis até o RECEIVE.

INPUTMSGLEN(data-value) Indica o nome da halfword que deve conter, em binário, o tamanho da área passada (INPUTMSG).

LENGTH(data-value) Indica o tamanho (em binário, numa halfword), em bytes, da communication area.

PROGRAM(name) Indica o nome do programa para o qual o controle deve ser passado.

Exemplo

EXEC CICS XCTL PROGRAM('PROG2')

Retornos

INVREQ, LENGERR, NOTAUTH, PGMIDERR

INVREQ RESP2 values: 8 An XCTL command with the INPUTMSG option is issued for a program that is not associated

with a terminal, or that is associated with an APPC logical unit, or an IRC session. 29 EXEC XCTL is not allowed in a GLUE or TRUE. 30 The program manager domain has not yet been initialized. This is probably due to a XCTL

request having been made in a first stage PLT. 43 An XCTL has been attempted to a hot-pooled Java program object while there is already a hot-

pooled program on the stack. 200 An XCTL command with the INPUTMSG option is issued in a program invoked by DPL.

46

Default action: terminate the task abnormally.

LENGERR RESP2 values: 11 LENGTH is less than 0 or greater than 32763. 26 The COMMAREA address passed was zero, but LENGTH was non-zero. 27 INPUTMSGLEN was less than 0 or greater than 32767. 28 LENGTH or INPUTMSGLEN is greater than the length of the data area specified in the

COMMAREA or INPUTMSG options, and while that data was being copied a destructive overlap occurred because of the incorrect length.

Default action: terminate the task abnormally.

NOTAUTH RESP2 values: 101 A resource security check has failed on PROGRAM(name). Default action: terminate the task abnormally.

PGMIDERR RESP2 values: 1 A program has no entry in the PPT and either program autoinstall was switched off, or the

program autoinstall control program indicated that the program should not be autoinstalled. 2 The program is disabled. 3 A program could not be loaded because:

This was the first load of the program and the program load. failed, usually because the load module could not be found.

This was a subsequent load of the program, but the first load failed. 9 The installed program definition is for a remote program. 21 The program autoinstall control program failed either because the program autoinstall control

program is incorrect, incorrectly defined, or as a result of an abend in the program autoinstall control program.

22 The model returned by the program autoinstall control program was not defined in the PPT table, or was not enabled.

23 The program autoinstall control program returned invalid data. 24 Define for the program failed due to autoinstall returning an invalid program name or

definition. Default action: terminate the task abnormally.

47

Exemplo de programa com diversas funções CICS ID DIVISION. PROGRAM-ID. PLTPROG. ENVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 77 APPLID PIC X(8) VALUE SPACES. 77 SYSID PIC X(4) VALUE SPACES. 01 COMM-DATA. 03 AREA-PTR USAGE IS POINTER. 03 AREA-LENGTH PIC S9(8) COMP. LINKAGE SECTION. 01 COMMON-WORK-AREA. 03 APPL-1-ID PIC X(4). 03 APPL-1-PTR USAGE IS POINTER. 03 APPL-2-ID PIC X(4). 03 APPL-2-PTR USAGE IS POINTER. PROCEDURE DIVISION. MAIN-PROCESSING SECTION. * Obtain APPLID and SYSID values EXEC CICS ASSIGN APPLID(APPLID) SYSID(SYSID) END-EXEC. * Set up addressability to the CWA EXEC CICS ADDRESS CWA(ADDRESS OF COMMON-WORK-AREA) END-EXEC. * Get 12KB of CICS-key storage for the first application ('APP1') MOVE 12288 TO AREA-LENGTH. EXEC CICS GETMAIN SET(AREA-PTR) FLENGTH(AREA-LENGTH) SHARED END-EXEC. * Initialize CWA fields and link to load program * for storage area 1. MOVE 'APP1' TO APPL-1-ID. SET APPL-1-PTR TO AREA-PTR. EXEC CICS LINK PROGRAM('LOADTAB1') COMMAREA(COMM-DATA) END-EXEC. * Get 2KB of user-key storage for the second application ('APP2') MOVE 2048 TO AREA-LENGTH. EXEC CICS GETMAIN SET(AREA-PTR) FLENGTH(AREA-LENGTH) SHARED USERDATAKEY END-EXEC. * Initialize CWA fields and link to load program * for storage area 2. MOVE 'APP2' TO APPL-2-ID. SET APPL-2-PTR TO AREA-PTR. EXEC CICS LINK PROGRAM('LOADTAB2') COMMAREA(COMM-DATA) END-EXEC. EXEC CICS RETURN END-EXEC. MAIN-PROCESSING-EXIT. GOBACK. Sample code for loading the CWA

48

Exemplo de programa com LINK

* Programa chamador IDENTIFICATION DIVISION. PROGRAM ID. 'PROG1'. . WORKING-STORAGE SECTION. 01 COM-REGION. 02 FIELD PICTURE X(3). . PROCEDURE DIVISION. MOVE 'ABC' TO FIELD. EXEC CICS LINK PROGRAM('PROG2') COMMAREA(COM-REGION) LENGTH(3) END-EXEC. .

* Programa chamado IDENTIFICATION DIVISION. PROGRAM-ID. 'PROG2'. . LINKAGE SECTION. 01 DFHCOMMAREA. 02 FIELD PICTURE X(3). . PROCEDURE DIVISION. IF EIBCALEN GREATER ZERO THEN IF FIELD EQUALS 'ABC' ...

49

Exemplo de programa com passagem de dados via RETURN * Programa chamador IDENTIFICATION DIVISION. PROGRAM-ID. 'PROG1'. . WORKING-STORAGE SECTION. 01 TERMINAL-STORAGE. 02 FIELD PICTURE X(3). 02 DATAFLD PICTURE X(17). . PROCEDURE DIVISION. MOVE 'XYZ' TO FIELD. EXEC CICS RETURN TRANSID('TRN2') COMMAREA(TERMINAL-STORAGE) LENGTH(20) END-EXEC. . * Programa chamado IDENTIFICATION DIVISION. PROGRAM-ID. 'PROG2' . LINKAGE SECTION. 01 DFHCOMMAREA. 02 FIELD PICTURE X(3). 02 DATAFLD PICTURE X(17). . PROCEDURE DIVISION. IF EIBCALEN GREATER ZERO THEN IF FIELD EQUALS 'XYZ' MOVE 'ABC' TO FIELD. EXEC CICS RETURN END-EXEC.

50

28 – Comandos para manipulação de TS / TD

DELETEQ

Deleta dados (registros) da TS ou da TD.

Sintaxe

EXEC CICS DELETEQ | TD | TS | QUEUE(name) [SYSID(name)] END-EXEC

Parâmetros

|TD|TS| Indica se o registro a deletar é da TD ou da TS.

QUEUE(name) Indica o nome da queue onde está o registro a ser deletado.

SYSID(systemname)para sistemas remotos (não locais)

Exemplo

EXEC CICS DELETEQ TS QUEUE (WS-NOME-TS)END-EXEC

Retornos

IOERRErro indeterminado durante operação de I/O

ISCINVREQErro indeterminado em sistema remoto

ITEMERRNúmero do ítem especificado é inválido

LENGERRTamanho do registro é inválido ou inexistente.

NOSPACEFalta de espaço para efetuar a operação.

QIDERR

51

A queue indicada não pôde ser encontrada.

QZEROA queue indicada está vazia.

SYSIDERRO sistema remoto indicado está indisponível ou não está definido.

52

READQ TD

Lê dados (registros) da TD. READQ TD reads transient data from a queue (after which the record is no longer available). If the READQ TD command attempts to access a record in a logically recoverable intrapartition queue that is being written to, or deleted by, another task, and there are no more committed records, the command waits until the queue is no longer being used for output. If, however, the NOSUSPEND option has been specified, or there is an active HANDLE CONDITION for QBUSY, the QBUSY condition is raised.

Sintaxe

READQ TD QUEUE(name) INTO(data-area) SET(ptr-ref) LENGTH(data-area) SYSID(systemname) NOSUSPEND

Parâmetros

INTO(data-area) Nome da área para leitura do registro

LENGTH(data-area) Tamanho (em uma halfword, em binário) do registro a ser lido.

NOSUSPENDNão aguardar se o registro estiver com LOCK.

QUEUE(name) Indica o nome da queue (1-4 caracteres) a ser lida.

SET(pointer)O CICS deve providenciar um buffer para a leitura, e retornar sua localização para o aplicativo, após nele colocar o registro lido.

SYSID(systemname)Para sistemas remotos (não locais)

Exemplos

EXEC CICS READQ TD QUEUE('CSML') INTO(WS-REG-CSML) LENGTH(TAM-REG)END-EXEC

EXEC CICS READQ TD QUEUE(EX1) SET(PREF) END-EXEC

53

Retornos

DISABLED, INVREQ, IOERR, ISCINVREQ, LENGERR, LOCKED, NOTAUTH, NOTOPEN, QBUSY, QIDERR, QZERO, SYSIDERR

DISABLED A queue está indisponível.Default : a task termina anormalmente.

INVREQ A queue expartition foi aberta como saída e foi dado um READQ. Default : a task termina anormalmente.

IOERR Erro de I/O e o registro foi lido (se ele não conseguiu ser lido, a condição indicada é QZERO). Default : a task termina anormalmente.

ISCINVREQ O sistema remoto indica uma falha desconhecida. Default : a task termina anormalmente.

LENGERR Um READQ foi dado para uma área cujo tamanho é insuficiente para conter o registro. Default : a task termina anormalmente.

LOCKED A queue está com o acesso bloqueado. Default : a task termina anormalmente.

NOTAUTH A task solicitante não tem autorização para acessar a queue indicada. Default : a task termina anormalmente.

NOTOPEN A queue extrapartition está fechada. Default : a task termina anormalmente.

QBUSY Foi dado um READQ TD numa queue intrapartition que está sendo gravada / atualizada por outra task. Default : condição ignorada

QIDERR A queue indicada não pôde ser localizada. Default : a task termina anormalmente.

QZERO A queue está vazia ou seu fim (EOF) foi atingido. Default : a task termina anormalmente.

SYSIDERR O sistema remoto indicado não existe ou o link está fechado. Default : a task termina anormalmente.

54

READQ TS

Lê dados (registros) da queue de TS.

Sintaxe

EXEC CICS READQ TS ( QUEUE() | QNAME() ) < SYSID() > ( SET() | INTO() ) < LENGTH() > < ITEM() | NEXT > < NUMITEMS() >END-EXEC

Parâmetros INTO(data-area) Indica a área onde o registro deve ser lido.

ITEM(data-value) Indica uma halfword que contém o número do ítem que corresponde ao registro que se deseja ler.

LENGTH(data-area) Indica uma halfword que contém o tamanho do registro a ser lido. Se for especificado INTO, não é necessário especificar LENGTH. Se for especificado SET, LENGTH é obrigatório.

NEXT Indica que a leitura deve ser do próximo registro lógico sequencial (em relação ao último lido pela task – ou o primeiro, se não foi lido nenhum).

NUMITEMS(data-area) Indica uma halfword na qual o CICS coloca o número de itens que há na queue.

QUEUE(name) Indica o nome simbólico (1-8 caracteres) da queue a ser lida.

QNAME(name) Indica nome simbólico (1-16 caracteres) da queue a ser lida (alternativa a QUEUE).

SETo CICS deve providenciar um buffer para a leitura, e retornar sua localização para o aplicativo, após nele colocar o registro lido.

SYSID(systemname)para sistemas remotos (não locais)

55

Exemplos

EXEC CICS READQ TS ITEM(1) QUEUE(UNIQNAME) INTO(DATA) LENGTH(LDATA)

EXEC CICS READQ TS QUEUE(DESCRQ) SET(PREF) LENGTH(LENG) NEXT

Retornos

INVREQ, IOERR, ISCINVREQ, ITEMERR, LENGERR, NOTAUTH, QIDERR, SYSIDERR

INVREQ occurs in either of the following situations:

the queue was created by CICS internal code. the queue name specified consists solely of binary zeroes.

Default action: terminate the task abnormally.

IOERR RESP2 values: 5 There is an irrecoverable input/output error for a shared queue. Default action: terminate the task abnormally.

ISCINVREQ O sistema remoto indica uma falha desconhecida. Default action: terminate the task abnormally.

ITEMERR occurs in any of the following situations:

The item number specified is invalid (that is, outside the range of item numbers written to the queue).

An attempt is made to read beyond the end of the queue using the NEXT (default) option. Default action: terminate the task abnormally.

LENGERR occurs when the length of the stored data is greater than the value specified by the LENGTH option. This condition only applies to the INTO option and cannot occur with SET. Default action: terminate the task abnormally.

NOTAUTH RESP2 values: 101 A resource security check has failed on QUEUE(name). Default action: terminate the task abnormally.

QIDERR A queue indicada não pôde ser localizada. Default action: terminate the task abnormally.

56

SYSIDERR RESP2 values: 4 The CICS region in which the temporary storage command is executed fails to connect to the TS server managing the TS pool that supports the referenced temporary storage queue. (For example, this can happen if the CICS region is not authorized to access the temporary storage server). SYSIDERR can also occur if the temporary storage server has not been started, or because the server has failed (or been stopped) while CICS continues executing.Also occurs in any of the following situations: When the SYSID option specifies a name that is neither the local system nor a remote system

(made known to CICS by defining a CONNECTION). When the link to the remote system is closed. Default action: terminate the task abnormally.

57

WRITEQ TD

Grava um registro lógico na TD.

Sintaxe

EXEC CICS WRITEQ TD QUEUE() < SYSID() > FROM() < LENGTH() >END-EXEC

Parâmetros

FROM(data-area) Indica a área de onde o registro será obtido para gravação.

LENGTH(data-value) Indica uma halfword que contém o tamanho do registro a ser gravado.

QUEUE(name) Indica o nome simbólico (1-4 caracteres) da queue a ser gravada.

SYSID(systemname)para sistemas remotos (não locais).

Exemplos

EXEC CICS WRITEQ TD QUEUE('CSML') FROM(MESSAGE) LENGTH(LENG)

Retornos

DISABLED A queue está indisponível. Default : task terminada anormalmente.

INVREQ Foi dado um WRITEQ numa extrapartition queue aberta como input. Default : task terminada anormalmente.

IOERR Um I/O error ocorreu na gravação. Default : task terminada anormalmente.

ISCINVREQ O sistema remoto indica uma falha desconhecida. Default : task terminada anormalmente.

58

LENGERR A WRITEQ não especifica um tamanho (LENGTH) consistente com o RECORDSIZE ou com o control interval do arquivo intrapartition. Default : task terminada anormalmente.

LOCKED A queue está com o acesso bloqueado. Default : task terminada anormalmente.

NOSPACE Falta de espaço para efetuar a operação. Default : task terminada anormalmente.

NOTAUTH A task solicitante não tem autorização para acessar a queue indicada. Default : task terminada anormalmente.

NOTOPEN A queue extrapartition está fechada. Default : task terminada anormalmente.

QIDERR A queue indicada não pôde ser localizada. Default : task terminada anormalmente.

SYSIDERR O sistema remoto indicado não existe ou o link está fechado. Default : task terminada anormalmente.

59

WRITEQ TS

Grava dados (registros) na TS.

Sintaxe

EXEC CICS WRITEQ TS ( QUEUE() | QNAME() ) < SYSID() > FROM() < LENGTH() > < NUMITEMS() | ITEM() < REWRITE > > < MAIN | AUXILIARY > < NOSUSPEND >END-EXEC

Parâmetros

AUXILIARY Indica que o registro deve ser gravado em disco (e não em memória).

FROM(data-area) Indica a área de onde os dados são obtidos para a gravação.

ITEM(data-area) Indica uma halfword que contém o número do ítem (registro) a ser substituído (REWRITE deve ter sido também especificado).

LENGTH(data-value) Indica uma halfword que contém o tamanho do registro a ser gravado (max.= 32763).

MAIN Indica que o registro deve ser gravado em memória (e não em disco).

NOSUSPEND Não suspender o programa se não houver espaço (prosseguir, avisando por meio da condição de retorno NOSPACE). Somente para queue em disco.

NUMITEMS(data-area) Indica uma halfword na qual o CICS coloca o número de itens que há na queue, após o WRITE.

QUEUE(name) Indica o nome simbólico (1-8 caracteres) da queue a ser lida.

QNAME(name) Indica nome simbólico (1-16 caracteres) da queue a ser lida (alternativa a QUEUE). Não usar X'FA' a X'FF', ou **, ou $$, ou DF no início do nome (reservados para o CICS).

REWRITE Indica que o registro referenciado existe e será regravado.

SYSID(systemname)para sistemas remotos (não locais)

60

Retornos

INVREQ, IOERR, ISCINVREQ, ITEMERR, LENGERR, LOCKED, NOSPACE, NOTAUTH, QIDERR, SYSIDERR

INVREQ O nome da queue é somente zeros binários ou a queue está com lock ou a queue foi criada por CICS internal code. Default : task termina anormalmente.

IOERR RESP2 values: 5 There is an irrecoverable input/output error for a shared queue. Default : task termina anormalmente.

ISCINVREQ O sistema remoto indica uma falha desconhecida. Default : task termina anormalmente.

ITEMERR O número do ítem (registro) não é válido ou maior que o máximo (32767) Default : task termina anormalmente.

LENGERR O tamanho especificado é negativo, zero ou > 32763 Default : task termina anormalmente.

LOCKED RESP2 values: 0 The request cannot be performed because use of the queue has been restricted owing to a unit of work failing in-doubt. Default : task termina anormalmente.

NOSPACE Foi especificado NOSUSPEND e não há espaço para a gravaçãoda TS. Default : task termina anormalmente.

NOTAUTH RESP2 values: 101 A resource security check has failed on QUEUE(name). Default : task termina anormalmente.

QIDERR A queue referenciada não pôde ser encontrada. Default : task termina anormalmente.

SYSIDERR RESP2 values: 4 The CICS region in which the temporary storage command is executed fails to connect to the TS server managing the TS pool that supports the referenced temporary storage queue, or TS server has not been started, or server has failed (or been stopped), or the SYSID option specifies na invalid name or the link to the remote system is closed. Default : task termina anormalmente.

61

29 – Outros comandos

ASKTIME

Obtém data e hora (e atualiza EIBDATE e EIBTIME).

Sintaxe

ASKTIME ABSTIME(data-area)

Parâmetros

ABSTIME(data-area) Indica uma área que receberá a hora no formato decimal compactado (milisegundos arredondados em centésimos desde 00:00 de 1 de Janeiro de 1900.

Exemplos

EXEC CICS ASKTIME ABSTIME(utime)

01 UTIME PIC S9(15) COMP-3. Fica com conteúdo similar a 002837962864820.

ASSIGN

Coloca na variável especificada a informação solicitada. Ex. nome do usuário.

Sintaxe

ASSIGN informação_solicitada(variável)

Ver no Apêndice a relação completa das informações que podem ser obtidas.

Exemplo

03 WS-USUARIO-ID PIC X(08) VALUE SPACES.EXEC CICS ASSIGN USERID (WS-USUARIO-ID) END-EXEC.

BIF DEEDIT

“Desedita” um campo (built-in function). Caracteres alfabéticos e especiais são removidos, e os dígitos restantes são alinhados à direita e feito o preenchimento com zeros à esquerda. Se o campo terminar com hífen (-) ou carriage return (CR) é colocada zona negativa (X'D') no último byte à direita. Se o último byte à direita tiver zona X'A' a X'F', e a parte numérica for X'0' a X'9', ele não é alterado.

Sintaxe

BIF DEEDIT FIELD(data-area)

62

LENGTH(data-value)

Parâmetros

FIELD(data-area) Indica o campo a ser editado.

LENGTH(data-value) Indica o tamanho, em bytes.

Exemplo

EXEC CICS BIF DEEDIT FIELD(CONTG) LENGTH(9)

Remove todos os caracteres que não sejam dígitos decimais do campo CONTG, e retorna o resultado no mesmo campo.

Conteúdo Original Conteúdo retornado 14-6704/B 00146704B $25.68 000002568

Retornos

LENGERR Se o LENGTH for menor que 1. Default : task termina anormalmente.

ENTER

Para efetuar trace , efetuando parada quando o programa estiver sendo executado em EDF mode.O ENTER TRACEID foi substituido pelo TRACENUM, mas ambos funcionam.

ENTER TRACEID

Sintaxe

ENTER TRACEID () < FROM() > < RESOURCE() > < ENTRYNAME() > < MONITOR > < PERFORM >

ENTER TRACEID

Sintaxe

ENTER TRACENUM() < FROM() < FROMLENGTH() > > < RESOURCE() > < EXCEPTION >

63

Parâmetros do TRACEID

TRACEID(nro_do_trace_para_identificação) Indica um número que identifica o trace quando for efetuada a parada. Pode ser de 1 a 199.

FROM(variavel_a_ser_exibida)Indica o nome da variável que deve ter seu conteúdo exibido quando for efetuada a parada.

RESOURCE(variavel)Indica um nome de no máx. 8 bytes a ser colocado no campo de resource relativo ao trace.

ENTRYNAME(variavel)Indica um qualificador para um user EMP; max. 8 bytes; default=USER.

MONITOR(variavel)Indica que deve ser gravado um EVENT MONITORING POINT do usuário (user EMP) ao invés de um trace de entry point.

PERFORM(variavel)Indica que a informação de um user EMP deve ser obtida dos registros de monitoramento da classe de performance.

Parâmetros do TRACENUM

TRACENUM(nro_do_trace_para_identificação) Indica um número que identifica o trace quando for efetuada a parada. Pode ser de 1 a 199.

FROM(variavel_a_ser_exibida)Indica o nome da variável que deve ter seu conteúdo exibido quando for efetuada a parada.

FROMLENGTH(tamanho da_variavel_a_ser_exibida)Indica o tamanho da variável que deve ter seu conteúdo exibido quando for efetuada a parada.

RESOURCE(variavel)Indica um nome de no máx. 8 bytes a ser colocado no campo de resource relativo ao trace.

EXCEPTIONIndica que deve ser gravada uma entrada do usuário na tabela de trace.

Exemplos

Exemplo 1 :

EXEC CICS ENTER TRACEID(01) END-EXEC

Antes da execução do comando :

TRANSACTION: ZZ54 PROGRAM: ZZPRG54 TASK: 0024594 APPLID: ZCDA DISPLAY: 00 STATUS: ABOUT TO EXECUTE COMMAND EXEC CICS ENTER TRACEID TRACEID (1)

64

Após a execução do comando :

TRANSACTION: ZZ54 PROGRAM: ZZPRG54 TASK: 0024594 APPLID: ZCDA DISPLAY: 00 STATUS: COMMAND EXECUTION COMPLETE EXEC CICS ENTER TRACEID TRACEID (1)

Exemplo 2 :

EXEC CICS ENTER TRACEID(02) FROM (WS-FIRST-TIME-SW) END-EXEC

Antes da execução do comando :

TRANSACTION: ZZ54 PROGRAM: ZZPRG54 TASK: 0024711 APPLID: ZCDA DISPLAY: 00 STATUS: ABOUT TO EXECUTE COMMAND EXEC CICS ENTER TRACEID TRACEID (2) FROM ('YY......')

Após a execução do comando :

TRANSACTION: ZZ54 PROGRAM: ZZPRG54 TASK: 0024594 APPLID: ZCDA DISPLAY: 00 STATUS: ABOUT TO EXECUTE COMMAND EXEC CICS ENTER TRACEID TRACEID (1)

Após a execução do comando :TRANSACTION: ZZ54 PROGRAM: ZZPRG54 TASK: 0024594 APPLID: ZCDA DISPLAY: 00

STATUS: COMMAND EXECUTION COMPLETE

EXEC CICS ENTER TRACEID

TRACEID (1)

FORMATTIME

Transforma data e hora do formato absoluto (oriundo do ASKTIME) num formato conforme solicitado. Valores (de milisegundos, de origem) de meio segundo (ou menos) faltando para meia-noite são arredondados para 23:59:59.

Sintaxe

EXEC CICS FORMATTIME ABSTIME() < YYDDD() > < YYMMDD() > < YYDDMM() > < DDMMYY() > < MMDDYY() > < YYYYDDD() > < YYYYMMDD() > < YYYYDDMM() > < DDMMYYYY() >

65

< MMDDYYYY() > < FULLDATE() > < DATE() > < DATEFORM() > < DATESEP() > < DAYCOUNT() > < DAYOFWEEK() > < YYYYDDMM() > < DDMMYYYY() > < MMDDYYYY() > < FULLDATE() > < DATE() > < DATEFORM() > < DATESEP() > < DAYCOUNT() > < DAYOFWEEK() > < DAYOFMONTH() > < MONTHOFYEAR() > < YEAR() > < TIME() < TIMESEP() > >

Parâmetros

ABSTIME(data-area) Indica a área que contém o valor (em decimal compactado) que equivale à quantidade de milisegundos decorridos desde 00:00 de 1 de Janeiro de 1900, e deve ser convertido (em Cobol : PIC S9(15) COMP-3)

DATE(data-area) Indica a variável que deve receber a data no formato especificado em DATEFORM.Separadores serão colocados se necessário. Se não for solicitado separadores, o valor retornado é alinhado à esquerda, em 8 bytes.

DATEFORM(data-area) Indica a variável onde o CICS devolve o formato definido pela instalação. O CICS retorna YYMMDD, DDMMYY, ou MMDDYY (6 caracteres) de acordo com o definido no sistema.

DATESEP(data-value) Indica o caracter que o CICS deve colocar como separador entre YY e MM e DD. Se omitido, não será colocado separador. Se especificado DATESEP(), assume barra (/).

DAYCOUNT(data-area) Indica a variável onde o CICS coloca o número de dias decorridos desde 1 de Janeiro de1900 (dia 1); deve ser uma fullword (o número será devolvido em binário).

DAYOFMONTH(data-area) Indica a variável onde o CICS deve retornar o número do dia no mês (número binário em fullword).

DAYOFWEEK(data-area) Indica o nome da variável (fullword) onde o CICS coloca o número (binário) que indica o dia da semana : Domingo=0; 2ªfeira=1; 3ª feira=2; 4ª feira=3; 5ªfeira=4;6ªfeira=5;Sábado=6.

DDMMYY(data-area) Indica a variável (8 bytes em caracter) onde o CICS deve retornar a data, no formato dia/mes/ano (por ex.: 21/10/98 – se for pedido separator ‘/’) ou sem as barras (por ex.: 211098 seguidos de 2 brancos – se não for pedido separator).

66

DDMMYYYY(data-area) Indica a variável (10 bytes em caracter) onde o CICS deve retornar a data, no formato dia/mes/ano (por ex.: 21/10/1998 – se for pedido separator ‘/’) ou sem as barras (por ex.: 21101998 seguidos de 2 brancos – se não for pedido separator).

FULLDATE(data-area) Indica a variável (10 bytes em caracter) onde o CICS deve retornar a data, no formato indicado poer DATEFORM , com o ano com 4 dígitos.

MMDDYY(data-area) Indica a variável (8 bytes em caracter) onde o CICS deve retornar a data, no formato mês/dia/ano (por ex.: 10/21/98 – se for pedido separator ‘/’) ou sem as barras (por ex.: 102198 seguidos de 2 brancos – se não for pedido separator).

MMDDYYYY(data-area) Indica a variável (10 bytes em caracter) onde o CICS deve retornar a data, no formato mês/dia/ano (por ex.: 10/21/98 – se for pedido separator ‘/’) ou sem as barras (por ex.: 102198 seguidos de 2 brancos – se não for pedido separator).

MONTHOFYEAR(data-area) Indica a variável na qual é colocado o número do mês (fullword em binário) : (Janeiro=1,... Dezembro=12).

TIME(data-area) Indica a variável que deve receber o horário (tipo 24hs , formato hh:mm:ss); Separadores serão colocados conforme especificado em TIMESEP.

TIMESEP(data-value) Indica o caracter que o CICS deve colocar como separador entre HH e MM e SS. Se omitido, será assumido “:”.

YEAR(data-area) Indica a variável na qual é colocado o número do ano (fullword em binário).

YYDDD(data-area) Indica a variável (6 bytes) na qual o CICS coloca a data na forma YY/DDD (com separator se assim solicitado por DATESEP).

YYDDMM(data-area) Indica a variável (8 bytes) na qual o CICS coloca a data na forma YY/DD/MM (ex.: 95/30/10) , com separator se assim solicitado via DATESEP.

YYMMDD(data-area) Indica a variável (8 bytes) na qual o CICS coloca a data na forma YY/MM/DD (ex.: 95/10/30) , com separator se assim solicitado via DATESEP.

YYYYDDD(data-area) Indica a variável (8 bytes) na qual o CICS coloca a data na forma YYYY/DDD (ex.: 1995/200) , com separator se assim solicitado via DATESEP.

67

YYYYDDMM(data-area) Indica a variável (10 bytes) na qual o CICS coloca a data na forma YYYY/DD/MM (ex.: 1995/30/12) , com separator se assim solicitado via DATESEP.

YYYYMMDD(data-area) Indica a variável (10 bytes) na qual o CICS coloca a data na forma YYYY/MM/DD (ex.: 1995/12/30) , com separator se assim solicitado via DATESEP.

Exemplos

EXEC CICS ASKTIME ABSTIME(ws-time) Se devolver 002837962864828 em ws-time EXEC CICS FORMATTIME ABSTIME(ws-time) DATESEP('-') DDMMYY(ws-date) TIME(ws-time) TIMESEP Devolve 06-12-89 em ws-date e 19:01:05 em "ws-time".

EXEC CICS FORMATTIME ABSTIME(WS-ABS) YYMMDD (WS-YYMMDD) END-EXEC...03 WS-YYMMDD. 05 WS-ANO PIC 9(02). 05 FILLER PIC X(01). 05 WS-MES PIC 9(02). 05 FILLER PIC X(01). 05 WS-DIA PIC 9(02).

Retornos

INVREQ RESP2 values: 1 The ABSTIME value is less than zero or not in packed-decimal format. Default action: terminate the task abnormally.

HANDLE ABEND

Para tratamento de término anormal.Pode ser emitido para ativar, reativar ou cancelar (desativar) um processamento do usuário (exit) referente a um término anormal. Pode-se suspender o comando por meio de PUSH HANDLE e POP HANDLE. Quando uma task termina anormalmente, o CICS verifica se deve ser ativada uma rotina do usuário (abend exit) ; a verificação começa no nível do programa onde ocorreu o abend e continua nos níveis mais altos. No primeiro que for achada a existência de exit (via HANDLE) o desvio (para a rotina indicada no HANDLE) é efetuado. Se for especificada COMMAREA, ela será passada para o programa (caso PROGRAM seja especificado).

68

Programa sem HANDLE ABEND

i1 I2 ... in

Se ocorrer ABEND : do ponto onde o abend foi originado é efetuado um “desvio para o CICS” :

i1 I2 ... ix in

Lembrar que, na verdade, :

i1 I2 ... ix in

Isso significa que quando for executado o EXEC CICS função , vai ser feito um CALL para o CICS; ou seja, o controle JÁ vai estar COM o CICS; se ele (CICS) detectar algum problema que deva ser origem de um ABEND (não deve ser passado o controle para o aplicativo novamente, ele deve ser finalizado à força), ele (CICS) CONTINUA com o controle, efetuando o tratamento do ABEND (procedimentos que ele julga necessários para o ABEND : preparar áreas de display, efetuar display de mensagem(s) EM INGLES, etc.). Ex. :

i1 I2 ... ix in

Programa com HANDLE ABEND

NA VERDADE, o CICS tem um recurso que permite que o tratamento de ABENDS seja feito pelos aplicativos que nós desenvolvemos e não por ele mesmo; para isso, precisamos avisá-lo de que não queremos que o CICS trate o ABEND, e sim que NÓS MESMOS queremos tratá-lo.

Esse recurso consiste no seguinte : antes de ele fazer o tratamento de erro, ele verifica se nós queremos fazer; se nós já o avisamos anteriormente que isso é o que desejamos, ele irá fazer um desvio para o NOSSO procedimento.

i1 I2 ... ix in

69

EXEC CICSfunçãoEND-EXEC

EXEC CICSfunçãoEND-EXEC

...Se problema Preparar variáveis Exibir Mensagens Abendar Senão ContinuarFimSe... CICS

Para que possamos informar ao CICS que desejamos fazer esse tipo de tratamento, e para indicar-lhe qual o nome da instrução (Procedure Name) para o qual ele deve desviar quando houver um ABEND, usamos o comando HANDLE ABEND.

i1 I2 ... ix Maria in

Sintaxe

EXEC CICS Handle ABend < Label() | Program() | Cancel | Reset >END-EXEC

Parâmetros

CANCEL Indica que um exit estabelecido (ativado) anteriormente deve ser cancelado (desativado).

LABEL(label) Indica o procedure name do programa para onde deve ser efetuado o desvio quando o término anormal for detectado (só para Cobol).

70

EXEC CICSfunçãoEND-EXEC

...Se problema Se AplicativoQuerTratar Desviar para RotinaDoAplicativoQueTrataAbend Senão Preparar variáveis Exibir Mensagens Abendar FimSeSenão Continuar (voltar para instrução após ix)FimSe

... CICS

Não tem volta !!!Continua no aplicativo !!!

EXEC CICSHANDLE ABEND LABEL (MARIA)END-EXEC

EXEC CICSfunçãoEND-EXEC

...Se problema Se AplicativoQuerTratar Desviar para MARIA Senão Preparar variáveis Exibir Mensagens Abendar FimSeSenão Continuar (voltar para instrução após ix)FimSe

... CICS

PROGRAM(name) Indica o nome do programa para o qual o controle é passado se a task terminar anormalmente. O programa deve sempre terminar com ABEND (exceto se for chamado por erro de lógica do chamador).

RESET Indica que o exit desativado por um HANDLE ABEND CANCEL deve ser reativado.

Exemplo EXEC CICS HANDLE ABEND PROGRAM('EXITPGM') END-EXEC

Retornos

NOTAUTH, PGMIDERR (PROGRAM only)

NOTAUTH Se o programa emitente não tiver autorização para executar (chamar) o PROGRAM(name). Default : task termina anormalmente.

PGMIDERR RESP2 values: 1 The program has no entry in the PPT and autoinstall for programs is not active. 2 The program is disabled. 9 The installed program definition is for a remote program. Default : task termina anormalmente.

71

HANDLE AID

Estabelece que o processamento das condições de attention (AIDs = attention identifiers) especificadas deve ser feito pelo aplicativo (válido somente para Cobol e PL/I). Indica labels (nomes de pontos do programa; procedure names, no caso de Cobol) de rotinas para as

quais o CICS deve passar o controle quando um AID é recebido de um device (após um RECEIVE).

Para indicar que o programa não irá efetuar processamento do AID, deve-se especificar a condição sem mencionar um label; usa-se para desativar HANDLEs anteriores que não mais se deseja estejam ativos.

Se nenhum HANDLE AID estiver ativo para uma condição, após o RECEIVE o processamento continua na instrução seguinte (ao RECEIVE), quando então pode-se testar EIBAID para verificar qual tecla foi pressionada.

Num comando pode-se especificar no máximo 16 condições.

Sintaxe

EXEC CICS HANDLE AID < ANYKEY() > < CLEAR() > < CLRPARTN() > < ENTER() > < LIGHTPEN() > < OPERID() > < TRIGGER() > < PA1() > < PA2() > < PA3() > < PF1() > < PF2() > < PF3() > < PF4() > < PF5() > < PF6() > < PF7() > < PF8() > < PF9() > < PF10() > < PF11() > < PF12() > < PF13() > < PF14() > < PF15() > < PF16() > < PF17() > < PF18() > < PF19() > < PF20() > < PF21() > < PF22() > < PF23() > < PF24() >END-EXEC

72

Parâmetros

ANYKEY (PA key, qualquer PF key, ou CLEAR key, mas não o ENTER) CLEAR (Clear key) CLRPARTN (Clrpartn key) ENTER (ENTER key) LIGHTPEN (attention de light-pen) OPERID (card reader do operador, magnetic slot reader - MSR, ou MSRE – MSR Extended) PA1, PA2, or PA3 (PA keys) PF1 through PF24 (PF keys) TRIGGER (trigger field attention)

Exemplo

EXEC CICS HANDLE AID PA1(LAB1) ANYKEY(LAB2) PF10 END-EXEC

Para PA : procedure name LAB1; Para CLEAR , PA2, PA3 e todas PFs (exceto PF10) : procedure name LAB2Para PF10 ou ENTER : controle retorna para a instrução seguinte ao comando de input

Retornos

INVREQ RESP2 values: 200 The command was issued by a distributed program link server application. Default action: terminate the task abnormally.

73

HANDLE CONDITION

Para tratamento de condições (como fim de arquivo, registro duplicado, I/O error, etc..) pelo programa; ver a relação completa das condições no apêndice. Pode ser emitido para ativar, reativar ou cancelar (desativar) um processamento do usuário (exit)

referente a um término anormal. Especifica-se a condição desejada e o procedure name correspondente à instrução para a qual

deseja-se passar o controle. Se o procedure name for omitido, o tratamento pelo programa (previamente ativado) é desativado. Num comando pode-se especificar no máximo 16 condições. Se ocorrer uma condição que não tenha sido especificada no HANDLE CONDITION a ação

default será feita (ver no apêndice) O escopo de um HANDLE CONDITION refere-se somente ao programa onde ele foi especificado /

executado. O comando HANDLE CONDITION fica ativo enquanto o programa está sendo executado OU

Um comando IGNORE CONDITION para a mesma condição é executado Outro comando HANDLE CONDITION com a mesma condição for executado Um comando LINK é executado para chamar outro programa CICS : o tratamento em vigor

para a(s) condição(ções) não é herdado pelo programa chamado. O comando HANDLE CONDITION é (pode ser) temporariamente desativado por um parâmetro

NOHANDLE ou RESP

Sintaxe

HANDLE CONDITION condition[(label)]

Parâmetros

condition(label) Indica o nome da condição e o label do programa para onde será efetuado o desvio; ver no apêndice a relação completa das condições.

Exemplos

EXEC CICS HANDLE CONDITION ERROR(ERRHANDL) DUPREC(DUPRTN) LENGERR END-EXEC

EXEC CICS HANDLE CONDITION DUPREC (200-TRATA-ALTERACAO)

NOTOPEN (510-CLIENTES-NOT-OPEN) ERROR (522-CLIENTES-ERROR) LENGERR (560-CLIENTES-LENGTH) DSIDERR (565-CLIENTES-DSIDERR) IOERR (570-CLIENTES-IOERR) END-EXEC.

74

IGNORE CONDITION

Para desativar o tratamento de condições pelo programa, previamente ativadas por HANDLE CONDITION. Caso, portanto, ocorra a condição, o processamento continua na instrução seguinte ao comando que causou a condição, e o EIB é posicionado para que possa ser testado (caso o programa não seja terminado anormalmente).Num comando pode-se especificar no máximo 16 condições.

Sintaxe

IGNORE CONDITION condition

Parâmetros

condition Indica o nome da condição que se deseja ignorar; ver no apêndice a relação completa das condições.

75

POP HANDLE

Restaura a condição de HANDLE salva por PUSH.

Sintaxe

EXEC CICS POP HANDLE END-EXEC

Exemplo

EXEC CICS POP HANDLE END-EXEC

PUSH HANDLE

Salva a condição de HANDLE ativa.

Sintaxe

EXEC CICS PUSH HANDLE END-EXEC

Exemplo

EXEC CICS PUSH HANDLE END-EXEC

SYNCPOINT

Sintaxe

EXEC CICS SYNCPOINT <ROLLBACK> END-EXEC

Exemplos

EXEC CICS SYNCPOINT ROLLBACK END-EXEC

76

APÊNDICES

77

EXEC Interface Block - EIB fields

Um programa pode ler o conteúdo de qualquer campo do EIB, mas não pode alterar seu conteúdo.

EIBAID X(1). Tem o attention identifier (AID) associado à última operação (input ou control).

EIBATT X(1). Indica que a RU contem dados header incluidos (X'FF').

EIBCALEN S9(4) COMP. Tem o tamanho ca communication area que foi passada ao aplicativo pelo último programa, usando as opções COMMAREA e LENGTH. Se não foi passada communication area, tem zeros.

EIBCOMPL X(1). Indica, num comando RECEIVE, se os dados estão completos (X'FF'). Se a opção NOTRUNCATE foi usada no comando RECEIVE, o CICS retem os dados em excesso (além do especificado no LENGTH ou MAXLENGTH). O campo EIBRECV é posicionado indicando que mais RECEIVE são necessários. O campo EIBCOMPL não é posicionado até que o último dado seja obtido. O campo EIBCOMPL sempre é posicionado se o comando RECEIVE não tiver a opção NOTRUNCATE.

EIBCONF X(1). Indica que um CONFIRM foi recebido (X'FF') para uma APPC conversation.

EIBCPOSN S9(4) COMP Tem a posição (endereço) do cursor associado à última operação de input / control.

EIBDATE S9(7) COMP-3 Tem a data em que a task foi iniciada. Este campo é atualizado quando é emitido o comando ASKTIME. O formato é decimal compactado (0CYYDDD+) onde C indic ao século (0 = 1900; 1 = 2000) . Por ex. : 31 de dezembro de 1999 e 1de janeiro de 2000 tem valores de EIBDATE respectivamente de 0099365 e 0100001 .

EIBDS X(8) Tem o identificador simbólico do último arquivo referenciado numa operração de arquivo.

EIBEOC X(1) Indica end-of-chain na RU recebida (X'FF').

EIBERR X(1) Indica que um erro foi recebido (X'FF') numa APPC conversation.

EIBERRCD X(4) Se EIBERR é posicionado, EIBERRCD tem o código do erro que foi rcebido. Nos 2 primeiros bytes de EIBERRCD pode ter : X'0889' (Conversation error detectado) ou X'0824' (SYNCPOINT ROLLBACK requested).

EIBFMH X(1) Indica que os dados do usuário recebidos ou acessados tem um FMH (X'FF').

EIBFN X(2) Tem um código que identifica o último comando CICS emitido pela task. Code Command

0202 ADDRESS 0204 HANDLE CONDITION 0206 HANDLE AID 0208 ASSIGN 020A IGNORE CONDITION 020C PUSH HANDLE 020E POP HANDLE 0210 ADDRESS SET

0402 RECEIVE 0404 SEND 0406 CONVERSE 0408 ISSUE EODS 040A ISSUE COPY 040C WAIT TERMINAL 040E ISSUE LOAD 0410 WAIT SIGNAL 0412 ISSUE RESET 0414 ISSUE DISCONNECT 0416 ISSUE ENDOUTPUT 0418 ISSUE ERASEAUP 041A ISSUE ENDFILE 041C ISSUE PRINT 041E ISSUE SIGNAL 0420 ALLOCATE 0422 FREE 0424 POINT 0426 BUILD ATTACH 0428 EXTRACT ATTACH 042A EXTRACT TCT 042C WAIT CONVID 042E EXTRACT PROCESS 0430 ISSUE ABEND 0432 CONNECT PROCESS 0434 ISSUE CONFIRMATION 0436 ISSUE ERROR 0438 ISSUE PREPARE 043A ISSUE PASS

043C EXTRACT LOGONMSG 043E EXTRACT ATTRIBUTES

0602 READ 0604 WRITE 0606 REWRITE 0608 DELETE 060A UNLOCK 060C STARTBR 060E READNEXT 0610 READPREV 0612 ENDBR 0614 RESETBR

0802 WRITEQ TD 0804 READQ TD 0806 DELETEQ TD

0A02 WRITEQ TS 0A04 READQ TS 0A06 DELETEQ TS

0C02 GETMAIN 0C04 FREEMAIN

0E02 LINK 0E04 XCTL 0E06 LOAD 0E08 RETURN 0E0A RELEASE 0E0C ABEND 0E0E HANDLE ABEND

1002 ASKTIME 1004 DELAY 1006 POST 1008 START 1008 START ATTACH 1008 START BREXIT 100A RETRIEVE 100C CANCEL

1202 WAIT EVENT 1204 ENQ 1206 DEQ 1208 SUSPEND

1402 WRITE JOURNALNUM 1404 WAIT JOURNALNUM 1406 WRITE JOURNALNAME 1408 WAIT JOURNALNAME

1602 SYNCPOINT

1802 RECEIVE MAP 1804 SEND MAP 1806 SEND TEXT 1808 SEND PAGE 180A PURGE MESSAGE 180C ROUTE 180E RECEIVE PARTN 1810 SEND PARTNSET 1812 SEND CONTROL

1C02 DUMP

1E02 ISSUE ADD 1E04 ISSUE ERASE 1E06 ISSUE REPLACE 1E08 ISSUE ABORT 1E0A ISSUE QUERY 1E0C ISSUE END 1E0E ISSUE RECEIVE 1E10 ISSUE NOTE 1E12 ISSUE WAIT 1E14 ISSUE SEND

79

2002 BIF DEEDIT

2004 DEFINE COUNTER 2006 GET COUNTER 2008 UPDATE COUNTER 200A DELETE COUNTER 200C REWIND COUNTER 200E QUERY COUNTER 2014 DEFINE DCOUNTER 2016 GET DCOUNTER 2018 UPDATE DCOUNTER 201A DELETE DCOUNTER 201C REWIND DCOUNTER 201E QUERY DCOUNTER

3402 DEFINE ACTIVITY 3404 DEFINE PROCESS 3406 RUN ACTIVITY 3408 RUN ACQPROCESS 340E ACQUIRE PROCESS 3410 ACQUIRE ACTIVITYID 3412 DELETE CONTAINER 3414 GET CONTAINER 3416 PUT CONTAINER 3418 RESET ACTIVITY 341A CHECK ACTIVITY 341C CANCEL ACTIVITY 341E CANCEL ACQPROCESS 3420 SUSPEND ACTIVITY 3422 SUSPEND ACQPROCESS 3424 RESUME ACTIVITY 3426 RESUME ACQPROCESS 3428 DELETE ACTIVITY 342A LINK ACQPROCESS 342C LINK ACTIVITY 342E CANCEL ACQACTIVITY 3430 RUN ACQACTIVITY 3432 LINK ACQACTIVITY 3434 SUSPEND ACQACTIVITY 3436 RESUME ACQACTIVITY 3438 CHECK ACQPROCESS 343A CHECK ACQACTIVITY 343C RESET ACQPROCESS

3602 DEFINE INPUT EVENT 3602 DEFINE COMPOSITE EVENT 3604 DELETE EVENT 3608 ADD SUBEVENT 360A REMOVE SUBEVENT 360E TEST EVENT 3610 RETRIEVE REATTACH EVENT 3612 RETRIEVE SUBEVENT 3614 DEFINE TIMER 3616 DELETE TIMER 3618 CHECK TIMER 361A FORCE TIMER

3802 WEB RECEIVE 3804 WEB SEND 3806 WEB READ 3808 WEB STARTBROWSE 380A WEB READNEXT 380C WEB ENDBROWSE HTTPHEADER 380E WEB WRITE 3810 WEB EXTRACT 3814 WEB RETRIEVE

3C02 DOCUMENT CREATE 3C04 DOCUMENT INSERT 3C06 DOCUMENT RETRIEVE 3C08 DOCUMENT SET

3E0E EXTRACT TCPIP 3E10 EXTRACT CERTIFICATE

4802 ENTER TRACENUM 4804 MONITOR

80

4A02 ASKTIME ABSTIME 4A04 FORMATTIME

5602 SPOOLOPEN 5604 SPOOLREAD 5606 SPOOLWRITE 5610 SPOOLCLOSE

5E06 CHANGE TASK 5E22 WAIT EXTERNAL 5E32 WAITCICS

6A02 QUERY SECURITY 6C02 WRITE OPERATOR 6C12 ISSUE DFHWTO

7402 SIGNON 7404 SIGNOFF 7406 VERIFY PASSWORD 7408 CHANGE PASSWORD

7E02 DUMP TRANSACTION

Codes 82nn and 84nn are used by the CICS Front End Programming Interface.

EIBFREE X(1) Indica que o programa aplicativo não pode continuar usando um recurso. Deve liberar o recurso ou terminar para que o recurso seja liberado pelo CICS. (X'FF').

EIBNODAT X(1) Indica que não foram enviados dados pela aplicação remota (X'FF'). Uma mensagem foi recebida do sistema remoto somente com informações de controle.

EIBRCODE X(6) Tem o response code (código de retorno) do CICS depois que uma função solicitada pelo último comando CICS foi completada. Nota: para novos comandos onde EIBRESP e EIBRESP2 são os meios adequados de obter o retorno do CICS, o byte 3 do EIBRCODE tem o mesmo valor de EIBRESP. Para retorno normal, este campo tem 6X'00'A lista a seguir tem os valores dos bytes e seus respectivos nomes associados aos retornos, para teste (NOTAS NO FIM DESTA TABELA)

EIBFN EIBRCODE Condition 02 .. E0 .. .. .. .. .. INVREQ       04 .. 04 .. .. .. .. .. EOF 04 .. 10 .. .. .. .. .. EODS 04 .. C1 .. .. .. .. .. EOF 04 .. C2 .. .. .. .. .. ENDINPT 04 .. D0 .. .. .. .. .. SYSIDERR (see note 1) 04 .. D2 .. .. .. .. .. SESSIONERR (see note 2) 04 .. D3 .. .. .. .. .. SYSBUSY (see note 3) 04 .. D4 .. .. .. .. .. SESSBUSY 04 .. D5 .. .. .. .. .. NOTALLOC 04 .. E0 .. .. .. .. .. INVREQ (see note 4) 04 .. E1 .. .. .. .. .. LENGERR (see note 5) 04 .. E3 .. .. .. .. .. WRBRK 04 .. E4 .. .. .. .. .. RDATT 04 .. E5 .. .. .. .. .. SIGNAL 04 .. E6 .. .. .. .. .. TERMIDERR 04 .. E7 .. .. .. .. .. NOPASSBKRD 04 .. E8 .. .. .. .. .. NOPASSBKWR 04 .. EA .. .. .. .. .. IGREQCD 04 .. EB .. .. .. .. .. CBIDERR 04 .. EC .. .. .. .. .. PARTNERIDERR 04 .. ED .. .. .. .. .. NETNAMEIDERR 04 .. F1 .. .. .. .. .. TERMERR 04 .. .. 20 .. .. .. .. EOC 04 .. .. 40 .. .. .. .. INBFMH 04 .. .. .. .. F6 .. .. NOSTART 04 .. .. .. .. F7 .. .. NONVAL       06 .. 01 .. .. .. .. .. FILENOTFOUND 06 .. 02 .. .. .. .. .. ILLOGIC (see note 6) 06 .. 03 .. .. .. .. .. LOCKED 06 .. 05 .. .. .. .. .. RECORDBUSY 06 .. 08 .. .. .. .. .. INVREQ 06 .. 0C .. .. .. .. .. NOTOPEN 06 .. 0D .. .. .. .. .. DISABLED 06 .. 0F .. .. .. .. .. ENDFILE

81

06 .. 80 .. .. .. .. .. IOERR (see note 6) 06 .. 81 .. .. .. .. .. NOTFND 06 .. 82 .. .. .. .. .. DUPREC 06 .. 83 .. .. .. .. .. NOSPACE 06 .. 84 .. .. .. .. .. DUPKEY 06 .. 85 .. .. .. .. .. SUPPRESSED 06 .. 86 .. .. .. .. .. LOADING 06 .. D0 .. .. .. .. .. SYSIDERR (see note 1) 06 .. D1 .. .. .. .. .. ISCINVREQ 06 .. D6 .. .. .. .. .. NOTAUTH 06 .. E1 .. .. .. .. .. LENGERR       08 .. 01 .. .. .. .. .. QZERO 08 .. 02 .. .. .. .. .. QIDERR 08 .. 04 .. .. .. .. .. IOERR 08 .. 08 .. .. .. .. .. NOTOPEN 08 .. 10 .. .. .. .. .. NOSPACE 08 .. C0 .. .. .. .. .. QBUSY 08 .. D0 .. .. .. .. .. SYSIDERR (see note 1) 08 .. D1 .. .. .. .. .. ISCINVREQ 08 .. D6 .. .. .. .. .. NOTAUTH 08 .. D7 .. .. .. .. .. DISABLED 08 .. E0 .. .. .. .. .. INVREQ 08 .. E1 .. .. .. .. .. LENGERR       0A .. 01 .. .. .. .. .. ITEMERR 0A .. 02 .. .. .. .. .. QIDERR 0A .. 04 .. .. .. .. .. IOERR 0A .. 08 .. .. .. .. .. NOSPACE 0A .. 20 .. .. .. .. .. INVREQ 0A .. D0 .. .. .. .. .. SYSIDERR (see note 1) 0A .. D1 .. .. .. .. .. ISCINVREQ 0A .. D6 .. .. .. .. .. NOTAUTH 0A .. E1 .. .. .. .. .. LENGERR       0C .. E1 .. .. .. .. .. LENGERR 0C .. E2 .. .. .. .. .. NOSTG       0E .. 01 .. .. .. .. .. PGMIDERR 0E .. D6 .. .. .. .. .. NOTAUTH 0E .. E0 .. .. .. .. .. INVREQ 0E .. E1 .. .. .. .. .. LENGERR 0E .. F1 .. .. .. .. .. TERMERR       10 .. 01 .. .. .. .. .. ENDDATA 10 .. 04 .. .. .. .. .. IOERR 10 .. 11 .. .. .. .. .. TRANSIDERR 10 .. 12 .. .. .. .. .. TERMIDERR 10 .. 20 .. .. .. .. .. EXPIRED 10 .. 81 .. .. .. .. .. NOTFND 10 .. D0 .. .. .. .. .. SYSIDERR (see note 1) 10 .. D1 .. .. .. .. .. ISCINVREQ 10 .. D6 .. .. .. .. .. NOTAUTH 10 .. D8 .. .. .. .. .. USERIDERR 10 .. E1 .. .. .. .. .. LENGERR 10 .. E9 .. .. .. .. .. ENVDEFERR 10 .. FF .. .. .. .. .. INVREQ       12 .. 32 .. .. .. .. .. ENQBUSY 12 .. E0 .. .. .. .. .. INVREQ 12 .. E1 .. .. .. .. .. LENGERR       14 .. 01 .. .. .. .. .. JIDERR 14 .. 02 .. .. .. .. .. INVREQ 14 .. 05 .. .. .. .. .. NOTOPEN 14 .. 06 .. .. .. .. .. LENGERR 14 .. 07 .. .. .. .. .. IOERR 14 .. 09 .. .. .. .. .. NOJBUFSP 14 .. D6 .. .. .. .. .. NOTAUTH       16 .. 01 .. .. .. .. .. ROLLEDBACK       18 .. 01 .. .. .. .. .. INVREQ 18 .. 02 .. .. .. .. .. RETPAGE 18 .. 04 .. .. .. .. .. MAPFAIL 18 .. 08 .. .. .. .. .. INVMPSZ (see note 7) 18 .. 20 .. .. .. .. .. INVERRTERM

82

18 .. 40 .. .. .. .. .. RTESOME 18 .. 80 .. .. .. .. .. RTEFAIL 18 .. E1 .. .. .. .. .. LENGERR 18 .. E3 .. .. .. .. .. WRBRK 18 .. E4 .. .. .. .. .. RDATT 18 .. .. 02 .. .. .. .. PARTNFAIL 18 .. .. 04 .. .. .. .. INVPARTN 18 .. .. 08 .. .. .. .. INVPARTNSET 18 .. .. 10 .. .. .. .. INVLDC 18 .. .. 20 .. .. .. .. UNEXPIN 18 .. .. 40 .. .. .. .. IGREQCD 18 .. .. 80 .. .. .. .. TSIOERR 18 .. .. .. 01 .. .. .. OVERFLOW 18 .. .. .. 04 .. .. .. EODS 18 .. .. .. 08 .. .. .. EOC 18 .. .. .. 10 .. .. .. IGREQID       1A .. E0 .. .. .. .. .. INVREQ 1A .. 04 .. .. .. .. .. DSSTAT 1A .. 08 .. .. .. .. .. FUNCERR 1A .. 0C .. .. .. .. .. SELNERR 1A .. 10 .. .. .. .. .. UNEXPIN 1A .. E1 .. .. .. .. .. LENGERR 1A .. .. 11 .. .. .. .. EODS 1A .. .. 2B .. .. .. .. IGREQCD 1A .. .. .. 20 .. .. .. EOC       22 .. 80 .. .. .. .. .. INVEXITREQ 4A .. .. .. .. 01 .. .. INVREQ       56 .. .. .. .. 0D .. .. NOTFND 56 .. .. .. .. 10 .. .. INVREQ 56 .. .. .. .. 13 .. .. NOTOPEN 56 .. .. .. .. 14 .. .. ENDFILE 56 .. .. .. .. 15 .. .. ILLOGIC 56 .. .. .. .. 16 .. .. LENGERR 56 .. .. .. .. 2A .. .. NOSTG 56 .. .. .. .. 46 .. .. NOTAUTH 56 .. .. .. .. 50 .. .. NOSPOOL 56 .. .. .. .. 55 .. .. ALLOCERR 56 .. .. .. .. 56 .. .. STRELERR 56 .. .. .. .. 57 .. .. OPENERR 56 .. .. .. .. 58 .. .. SPOLBUSY 56 .. .. .. .. 59 .. .. SPOLERR 56 .. .. .. .. 5A .. .. NODEIDERR

EIBRECV X(1) Indica que o programa aplicativo deve continuar a receber dados por RECEIVE (X'FF').

EIBREQID X(1) Tem o request identifier assinalado pelo CICS para um comando que use intervalo.

EIBRESP S9(8) COMP Tem o número que corresponde à condição de RESP que ocorreu. Esses números são (em decimal): No. Condition 00 NORMAL 01 ERROR 02 RDATT 03 WRBRK 04 EOF 05 EODS 06 EOC 07 INBFMH 08 ENDINPT 09 NONVAL 10 NOSTART 11 TERMIDERR 12 FILENOTFOUND 13 NOTFND 14 DUPREC 15 DUPKEY 16 INVREQ 17 IOERR 18 NOSPACE 19 NOTOPEN 20 ENDFILE 21 ILLOGIC 22 LENGERR 23 QZERO 24 SIGNAL

83

25 QBUSY 26 ITEMERR 27 PGMIDERR 28 TRANSIDERR 29 ENDDATA 31 EXPIRED 32 RETPAGE 33 RTEFAIL 34 RTESOME 35 TSIOERR 36 MAPFAIL 37 INVERRTERM 38 INVMPSZ 39 IGREQID 40 OVERFLOW 41 INVLDC 42 NOSTG 43 JIDERR 44 QIDERR 45 NOJBUFSP 46 DSSTAT 47 SELNERR 48 FUNCERR 49 UNEXPIN 50 NOPASSBKRD 51 NOPASSBKWR 53 SYSIDERR 54 ISCINVREQ 55 ENQBUSY 56 ENVDEFERR 57 IGREQCD 58 SESSIONERR 59 SYSBUSY 60 SESSBUSY 61 NOTALLOC 62 CBIDERR 63 INVEXITREQ 64 INVPARTNSET 65 INVPARTN 66 PARTNFAIL 69 USERIDERR 70 NOTAUTH 72 SUPPRESSED 80 NOSPOOL 81 TERMERR 82 ROLLEDBACK 83 END 84 DISABLED 85 ALLOCERR 86 STRELERR 87 OPENERR 88 SPOLBUSY 89 SPOLERR 90 NODEIDERR 91 TASKIDERR 92 TCIDERR 93 DSNNOTFOUND 94 LOADING 95 MODELIDERR 96 OUTDESCRERR 97 PARTNERIDERR 98 PROFILEIDERR 99 NETNAMERR 100 LOCKED 101 RECORDBUSY 102 UOWNOTFOUND 103 UOWLNOTFOUND 104 LINKABEND 105 CHANGED 106 PROCESSBUSY 107 ACTIVITYBUSY 108 PROCESSERR 109 ACTIVITYERR 110 CONTAINERERR 111 EVENTERR 112 TOKENERR 113 NOTFINISHED

84

114 POOLERR 115 TIMERERR 116 SYMBOLERR 117 TEMPLATERR

EIBRESP2 S9(8) COMP Tem informações mais detalhadas referentes à condição de RESP ocorrida. Para requests de files remotos, EIBRESP2 tem zeros.

EIBRLDBK X(1) Indica rollback.

EIBRSRCE X(8) Tem o symbolic identifier do recurso sendo acessado pelo último comando, conforme tabela a seguir :Command type Resource Length BMS Map name 7 File control File name 8 Interval control Transaction name 4 Journal control Journal number H Journal control Journal name 8 Program control Program name 8 Temporary storage control TS queue name 8 or 16 Terminal control Terminal name; LU name; LU6.1

session or APPC convid 4 Transient data control TD queue name 4

Notes: 1. H= halfword binary. 2. Identifiers less than eight characters in length are padded on the right with blanks. 3. Identifiers greater than eight characters in length will be truncated.

EIBSIG X(1) Indica que foi recebido SIGNAL (X'FF').

EIBSYNC X(1) Indica que o programa aplicativo deve efetuar um syncpoint ou terminar. Antes de fazer isso, ele deve se assegurar que outros recursos que possui sejam postos em send state, ou liberados (X'FF').

EIBSYNRB X(1) Indica que o programa aplicativo deve emitir um comando SYNCPOINT ROLLBACK (X'FF').

EIBTASKN S9(7) COMP-3 Tem o número da task assinalado pelo CICS ( em decimal compactado)

EIBTIME S9(7) COMP-3 Tem o horário em que a task foi iniciada (atualizado pelo comando ASKTIME). Formato decimal compactado (0HHMMSS+), podendo ter valores desde 0000000+ to 0240000+ (0000000+ e 0240000+ são válidos).

EIBTRMID X(4) Tem a identificação do terminal simbólico do terminal ou LU associado à task.

EIBTRNID X(4) Tem o identificador da transação simbólica da task.

Notas: 1. Se ocorrer SYSIDERR, informações complementares existem nos bytes 1 e 2 de EIBRCODE : .. 04 00 .. .. .. request was for a function that is not valid .. 04 04 .. .. .. no session available and NOQUEUE .. 04 08 .. .. .. modename not found (for APPC only). .. 04 0C .. .. .. modename not valid (for APPC only). .. 04 10 .. .. .. task canceled or timed out during allocation (for APPC only). .. 04 14 .. .. .. mode group is out of service (for APPC only). .. 04 18 .. .. .. close - DRAIN=ALL (for APPC only). .. 08 .. .. .. .. sysid is not available. .. 08 00 .. .. .. no session available, all sessions are out of service, or released, or being quiesced. .. 08 04 .. .. .. no session available, request to queue rejected by XZIQUE global user exit program. .. 08 08 .. .. .. no session available; request rejected by XZIQUE global user exit program. .. 0C xx .. .. .. sysid definition error. .. 0C 00 .. .. .. name not that of TCTSE. .. 0C 04 .. .. .. name not that of remote TCTSE. .. 0C 08 .. .. .. mode name not found. .. 0C 0C .. .. .. profile not found.

2. Se ocorrer SESSIONERR, informações complementares existem nos bytes 1 e 2 de EIBRCODE : .. 08 .. .. .. .. session out of service .. 0C xx .. .. .. session definition error .. 0C 00 .. .. .. name not found .. 0C 0C .. .. .. profile not found.

85

3. Se ocorrer SYSBUSY num comando ALLOCATE, o byte 3 de EIBRCODE indica onde a condição de erro foi detectada : .. .. .. 00 .. .. the request was for a session to a connected terminal or system. .. .. .. 01 .. .. the request was for a session to a remotely connected terminal or system, and the error

occurred in the terminal-owning region (TOR) or an intermediate system. .. .. .. 02 .. .. the request was for a session to a remotely connected terminal or system, and the error

occurred in the application-owning region (AOR)

4. Se ocorrer INVREQ, informações adicionais podem existir nos bytes 1 ou 3 de EIBRCODE : .. 24 .. .. .. .. ISSUE PREPARE command – STATE error. .. .. .. 04 .. .. ALLOCATE command - TCTTE already allocated. .. .. .. 08 .. .. FREE command - TCTTE in wrong state. .. .. .. 0C .. .. CONNECT PROCESS command. SYNCLVL 2 requested but cannot be supported on session in use. .. .. .. 10 .. .. EXTRACT ATTACH command – incorrect data. .. .. .. 14 .. .. SEND command - CONFIRM option specified, but conversation not SYNCLVL 1. .. .. .. 18 .. .. EXTRACT TCT command - incorrect netname. .. .. .. 1C .. .. an incorrect command has been issued for the terminal or logical unit in use. .. .. .. 20 .. .. an incorrect command has been issued for the LUTYPE6.2 conversation type in use. .. .. .. 28 .. .. GETMAIN failure on ISSUE PASS command. .. .. .. 2C .. .. Command invalid in DPL environment.

5. Se ocorrer LENGERR, informações adicionais podem existir nos bytes 1 ou 3 de EIBRCODE :.. 00 .. .. .. .. input data is overlong and has been truncated. .. 04 .. .. .. .. on output commands, an incorrect (FROM) LENGTH has been specified, either < zero or > 32.767. .. 08 .. .. .. .. on input commands, an incorrect (TO) LENGTH has been specified, > 32.767. .. 0C .. .. .. .. length error has occurred on ISSUE PASS command.Note: This field is not used exclusively for the above and may take other values.

6. Se ocorrer ILLOGIC ou IOERR, informações adicionais existem no campo EIBRCODE .. xx xx xx xx .. BDAM response. .. xx .. .. .. .. VSAM return code. .. .. xx .. .. .. VSAM error code.

onde : byte 3 = VSAM problem determination code (ILLOGIC only) byte 4 = VSAM component code (ILLOGIC only)

7. Se ocorrer INVMPSZ, o byte 3 do campo EIBRCODE tem o código do terminal : .. .. .. xx .. .. terminal code.

86

Resumo comandos CICS

[ ] indicate optional parameters, [ | ] indicates a choice of one of the options listed (or none), { | } indicates you must specify one of the options.

Abend force the current task to terminate abnormallyEXEC CICS ABEND [ABCODE(name)] [CANCEL] [NODUMP] END-EXEC.

Address lets you access system information maintained in storage outside your programEXEC CICS ADDRESS [ACEE(pointer-ref)] [COMMAREA(pointer-ref)] [CSA(pointer-ref)] [CWA(pointer-ref)] [EIB(pointer-ref)] [TCTUA(pointer-ref)] [TWA(pointer-ref)] END-EXEC.

Allocate establishes a distributed processing session with another systemEXEC CICS ALLOCATE SYSID(name) [PROFILE(name)] [NOQUEUE | NOSUSPEND] [STATE(data-area)] END-EXEC.

Asktime obtain current time and dateEXEC CICS ASKTIME [ABSTIME(data-area)] END-EXEC.

Assign obtain information from various system control areasEXEC CICS ASSIGN option(data-area) END-EXEC.

Bif deedit formats alphanumeric data into numeric dataEXEC CICS BIF DEEDIT FIELD(data-area) [LENGTH(data-value)] END-EXEC.

Build attach creates an ATTACH FMH used to initiate a background transaction with LU6.1 or MROEXEC CICS BUILD ATTACH ATTACHID(name) [PROCESS(name)] [RESOURCE(name)] [RPROCESS(name)] [RRESOURCE(name)] [QUEUE(name)] [IUTYPE(data-value)] [DATASTR(data-value)] [RECFM(data-value)] END-EXEC.

Cancel cancels the effect of a DELAY, POST, or START commandEXEC CICS CANCEL [REQID(name)] [TRANSID(name)] [SYSID(name)] END-EXEC.

Change task changes the priority of the current taskEXEC CICS CHANGE TASK PRIORITY(data-value) END-EXEC.

Connect process initiates an application program on a remote system once a session has been ALLOCATEdEXEC CICS CONNECT PROCESS {CONV(name) | SESSION(name) } PROCNAME(data-area) PROCLENGTH(data-area) SYNCLEVEL(data-area) [PIPLIST(data-area) PIPLENGTH(data-value)] [STATE(data-area)] END-EXEC.

Converse send data to a remote process and receive a responseEXEC CICS CONVERSE [CONVID(name) | SESSION(name)] [ATTACHID(name)] FROM(data-area) { FROMLENGTH(data-area) | FROMFLENGTH(data-area) } { INTO(data-area) | SET(pointer-ref) } {TOLENGTH(data-area) | TOFLENGTH(data-area) } [MAXLENGTH(data-value) | MAXFLENGTH(data-value)] [NOTRUNCATE] [STATE(data-area)] END-EXEC.

Delay suspend a taskEXEC CICS DELAY [INTERVAL(hhmmss) | TIME(hhmmss) | FOR [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)] | UNTIL [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)]] [REQID(name)] END-EXEC.

Delete remove a record from a fileEXEC CICS DELETE { DATASET(name) | FILE(name) } [RIDFLD(data-area) [KEYLENGTH(data-value) [GENERIC [NUMREC(data-area)]]]] [RBA | RRN] [SYSID(name)] END-EXEC.

Deleteq td remove a record from a transient data queueEXEC CICS DELETEQ TD QUEUE(name) [SYSID(name)] END-EXEC.

Deleteq ts Remove a record from a temporary storage queueEXEC CICS DELETEQ TS QUEUE(name) [SYSID(name)] END-EXEC.

Deq release a user defined resourceEXEC CICS DEQ RESOURCE(data-area) [LENGTH(data-value)] [LUW | TASK | MAXLIFETIME(data-area)] END-EXEC.

Dump force a storage dumpEXEC CICS DUMP [TRANSACTION] DUMPCODE(name) [FROM(data-area) [LENGTH(data-value) | FLENGTH(data-value)]] [SEGMENTLIST(data-area) LENGTHLIST(data-area) NUMSEGMENTS(data-area)] [COMPLETE] [TRT]

87

[TASK] [STORAGE] [PROGRAM] [TERMINAL] [TABLES] [DCT] [FCT] [PCT] [PPT] [SIT] [TCT] END-EXEC.

Endbr terminate a browse operationEXEC CICS ENDBR { DATASET(name) | FILE(name) } REQID(data-value) [SYSID(name)] END-EXEC.

Enq reserve a user defined resourceEXEC CICS ENQ RESOURCE(data-area) [LENGTH(data-value)] [NOSUSPEND] [LUW | TASK | MAXLIFETIME(data-area)] END-EXEC.

Enter write a user trace entry into the CICS trace tableEXEC CICS ENTER {TRACENUM(data-value) | TRACEID(data-value) } [FROM(data-area) [FROMLENGTH(data-area)]] [RESOURE(data-area)] [EXCEPTION] END-EXEC.

Extract attach retrieve values from an ATTACH FMHEXEC CICS EXTRACT ATTACH [ATTACHID(name) | CONVID(name) | SESSION(name)] [PROCESS(name)] [RESOURCE(name)] [RPROCESS(name)] [RRESOURCE(name)] [QUEUE(name)] [IUTYPE(data-value)] [DATASTR(data-value)] [RECFM(data-value)] END-EXEC.

Extract attributes determine the current state of an MRO or APPC conversationEXEC CICS EXTRACT ATTRIBUTES [CONVID(name) | SESSION(name)] [STATE(data-value)] END-EXEC.

Extract process used in a back end program to obtain information passed via the CONNECT PROCESS command in the front end programEXEC CICS EXTRACT PROCESS [CONVID(name) | SESSION(name)] [PROCNAME(data-value)PROCLENGTH(data-area) [MAXPROCLEN(data-value)]] [SYNCLEVEL(data-area)] [PIPLIST(data-area) PIPLENGTH(data-value)] END-EXEC.

Formattime convert time to required formatEXEC CICS FORMATTIME ABSTIME(data-value) [YYDDD(data-area)] [YYMMDD(data-area)] [YYDDMM(data-area)] [DDMMYY(data-area)] [MMDDYY(data-area)] [DATE(data-area) [DATEFORM(data-area)]] [DATESEP[(data-value)]] [DAYCOUNT(data-area)] [DAYOFWEEK(data-area)] [DAYOFMONTH(data-area)] [MONTHOFYEAR(data-area)] [YEAR(data-area)] [TIME(data-area) [TIMESEP[(data-value)]]] END-EXEC.

Free release a distributed processing sessionEXEC CICS FREE [CONVID(name) | SESSION(name)] [STATE(data-area)] END-EXEC.

Freemain release virtual storageEXEC CICS FREEMAIN { DATA(data-area) | DATAPOINTER(pointer-ref) } END-EXEC.

Getmain acquire virtual storageEXEC CICS GETMAIN SET(pointer-ref) { LENGTH(data-value) | FLENGTH(data-value) [BELOW] } [INITIMG(data-value)] [NOSUSPEND] [SHARED] {USERKEY | CICSKEY] END-EXEC.

Handle abend establish abend exitsEXEC CICS HANDLE ABEND { PROGRAM(name) | LABEL(label) | CANCEL | RESET } END-EXEC.

Handle aid establish routines to be invoked when AID keys (enter, pf and pa keys) are detected by a receive mapEXEC CICS HANDLE AID option [(label)] END-EXEC.

Handle condition specifies how certain exception conditions should be processedEXEC CICS HANDLE CONDITION condition-name [(label)] END-EXEC.

Ignore condition specifies that certain exception conditions should be ignoredEXEC CICS IGNORE CONDITION condition-name ... END-EXEC.

Link invoke a program, return to the next statement after completionEXEC CICS LINK PROGRAM(name) [COMMAREA(data-area) [LENGTH(data-value)] [DATALENGTH(data-value)]] [INPUTMSG(data-area) [INPUTMSGLEN(data-value)]] [SYSID(name)] [SYNCONRETURN] [TRANSID(name)] END-EXEC.

Load retrieve and load an object module and return its length and addressEXEC CICS LOAD PROGRAM(name) [SET(pointer-ref)] [LENGTH(data-area) |

88

FLENGTH(data-area)] [ENTRY(pointer-ref)] [HOLD] END-EXEC.Pop handle restores handle abend, aid, and conditions temporarily suspended by push handle

EXEC CICS POP HANDLE END-EXEC.Post create a Timer Event Control Area

EXEC CICS POST [INTERVAL(hhmmss) | TIME(hhmmss) | AFTER [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)] | AT [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)]] SET(pointer-ref) [REQID(name)] END-EXEC.

Purge message delete a logical message before the task terminatesEXEC CICS PURGE MESSAGE END-EXEC.

Push handle temporarily suspend handle abend, aid, and conditionsEXEC CICS PUSH HANDLE END-EXEC.

Read read a record from a fileEXEC CICS READ { DATASET(name) | FILE(name) } { INTO(data-area) | SET(pointer-ref) } [LENGTH(data-area)] RIDFLD(data-area) [KEYLENGTH(data-area) [GENERIC]] [SYSID(name)] [RBA | RRN] [GTEQ | EQUAL] [UPDATE] END-EXEC.

Readnext read the next sequential record from a fileEXEC CICS READNEXT { DATASET(name) | FILE(name) } { INTO(data-area) | SET(pointer-ref) } [LENGTH(data-area)] RIDFLD(data-area) [KEYLENGTH(data-area)] [SYSID(name)] [RBA | RRN] [REQID(data-value)] END-EXEC.

Readprev read the previous sequential record from a fileEXEC CICS READPREV { DATASET(name) | FILE(name) } { INTO(data-area) | SET(pointer-ref) } [LENGTH(data-area)] RIDFLD(data-area) [KEYLENGTH(data-area)] [SYSID(name)] [RBA | RRN] [REQID(data-value)] END-EXEC.

Readq td read a record from a transient data queueEXEC CICS READQ TD QUEUE(name) { INTO(data-area) | SET(pointer-ref) } [LENGTH(data-area)] [SYSID(name)] [NOSUSPEND] END-EXEC.

Readq ts read a record from a temporary storage queueEXEC CICS READQ TS QUEUE(name) { INTO(data-area) | SET(pointer-ref) } [LENGTH(data-area)] [NUMITEMS(data-area)] [ITEM(data-value) | NEXT] [SYSID(name)] END-EXEC.

Receive (distributed) receive data sent by a remote processEXEC CICS RECEIVE [CONVID(name) | SESSION(name)] { INTO(data-area) | SET(pointer-ref) } { LENGTH(data-area) | FLENGTH(data-area) } [MAXLENGTH(data-value) | MAXFLENGTH(data-value)] [NOTRUNCATE] [STATE(data-area)] END-EXEC.

Receive (terminal) retrieve input data from a terminalEXEC CICS RECEIVE { INTO(data-area) | SET(pointer-ref) } { LENGTH(data-area) | FLENGTH(data-area) } [MAXLENGTH(data-value) | MAXFLENGTH(data-value)] [NOTRUNCATE] [ASIS] [BUFFER] END-EXEC.

Receive map receive data from a terminal via BMSEXEC CICS RECEIVE MAP(name) [MAPSET(name)] [INTO(data-area) | SET(pointer-ref)] [ASIS] END-EXEC.

Release free virtual storage acquired via a load commandEXEC CICS RELEASE PROGRAM(name) END-EXEC.

Resetbr re-establish position for a browseEXEC CICS RESETBR { DATASET(name) | FILE(name) } RIDFLD(data-area) [KEYLENGTH(data-value) [GENERIC]] [RBA | RRN] [GTEQ | EQUAL] [REQID(data-value)] [SYSID(name)] END-EXEC.

Retrieve retrieves data passed to another program via the start commandEXEC CICS RETRIEVE [INTO(data-area) | SET(pointer-ref)] [LENGTH(data-area)] [RTRANSID(data-area)] [RTERMID(data-area)] [QUEUE(data-area)] [WAIT] END-EXEC.

Return return to the invoking programEXEC CICS RETURN [TRANSID(name) [COMMAREA(data-area) LENGTH(data-value)]] [IMMEDIATE]] [INPUTMSG(data-area) [INPUTMSGLEN(data-value)]] END-EXEC.

Rewrite updates a record in a file

89

EXEC CICS REWRITE { DATASET(name) | FILE(name) } FROM(data-area) [LENGTH(data-area)] [SYSID(name)] END-EXEC.

Route allows BMS messages to be routed to multiple terminalsEXEC CICS ROUTE [LIST(data-area)] [OPCLASS(data-area)] [INTERVAL(hhmmss) | AFTER [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)] | AT [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)]] [ERRTERM{(name)]] [TITLE(data-area)] [REQID(name)] [NLEOM] END-EXEC.

Send (distributed) send data to a remote processEXEC CICS SEND [CONVID(name) | SESSION(name)] [ATTACHID(name)] [FROM(data-area) [LENGTH(data-area) | FLENGTH(data-area)]] [INVITE | LAST] [CONFIRM | WAIT] [STATE(data-area)] END-EXEC.

Send (terminal) send data to a terminalEXEC CICS SEND FROM(data-area) [LENGTH(data-area) | FLENGTH(data-area)] [DEST(name)] [WAIT] [INVITE | LAST] [DEFRESP] [STRFIELD] [ERASE] [CTLCHAR(data-area)] END-EXEC.

Send control send device control instructions to a terminalEXEC CICS SEND CONTROL [ERASEAUP | ERASE] [ALARM] [FREEKB] [FRSET] [CURSOR(data-value)] [PRINT] [FORMFEED] [ACCUM] [PAGING | TERMINAL [WAIT] [LAST]] [L40 | L64 | L80 | HONEOM] [REQID(name)] END-EXEC.

Send map send data to a terminal via BMSEXEC CICS SEND MAP(name) [MAPSET(name)] [FROM(data-area)] [LENGTH(data-value)] [DATAONLY | MAPONLY] [ERASEAUP | ERASE] [ALARM] [FREEKB] [FRSET] [CURSOR(data-value)] [PRINT] [FORMFEED] [NLEOM] [ACCUM] [PAGING | TERMINAL [WAIT]] [LAST] [L40 | L64 | L80 | HONEOM] [REQID(name)] END-EXEC.

Send page write the last page of a BMS message to temporary storageEXEC CICS SEND PAGE [RELEASE [TRANSID(name)] | RETAIN] [AUTOPAGE | NOAUTOPAGE] [OPERPURGE] [TRAILER(data-area)] END-EXEC.

Send text send data to a terminal letting BMS automatically format the dataEXEC CICS SEND TEXT FROM(data-area) [LENGTH(data-value)] [ERASE] [ALARM] [FREEKB] [CURSOR(data-value)] [PRINT] [FORMFEED] [NLEOM] [ACCUM] [PAGING | TERMINAL [WAIT]] [LAST] [HEADER(data-area)] [TRAILER(data-area)] [JUSTIFY(datavalue) | JUSFIRST | JUSLAST] [L40 | L64 | L80 | HONEOM] [REQID(name)] END-EXEC.

Send text noedit send data to a terminal similar to terminal control but can direct to temporary storage using paging optionEXEC CICS SEND TEXT NOEDIT FROM(data-area) [LENGTH(data-value)] [ERASE] [ALARM] [FREEKB] [PRINT] [PAGING | TERMINAL [WAIT] [LAST]] [L40 | L64 | L80 | HONEOM] [REQID(name)] END-EXEC.

Signoff signs the user off cicsEXEC CICS SIGNOFF END-EXEC.

Signon signs the user on to cicsEXEC CICS SIGNON USERID(datavalue) [PASSWORD(data-value)] [NEWPASSWORD(data-value)] [OIDCARD(data-value)] [NATLANG(data-value)] [natlanginuse(data-area)] [ESMRESP(data-area)] END-EXEC.

Start initiate another task after or at a specified timeEXEC CICS START TRANSID(name) [INTERVAL(hhmmss) | TIME(hhmmss) | AFTER [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)] | AT [HOURS(hh)] [MINUTES(mm)] [SECONDS(ss)]] [TERMID(name)] [SYSID(name)] [REQID(name)] [FROM(data-area) [LENGTH(data-value)]] [RTRANSID(name)] [RTERMID(name)] [QUEUE(name)] [NOCHECK] [PROTECT] END-EXEC.

Startbr initiate a browseEXEC CICS STARTBR { DATASET(name) | FILE(name) } RIDFLD(data-area) [KEYLENGTH(data-area) [GENERIC]] [SYSID(name)] [RBA | RRN] [GTEQ | EQUAL] [REQID(data-value)] END-EXEC.

Suspend temporarily return control to cicsEXEC CICS SUSPEND END-EXEC.

Syncpoint rollback or make permanent updates applied to protected resourcesEXEC CICS SYNCPOINT [ROLLBACK] END-EXEC.

90

Unlock release a record held by a READ UPDATE commandEXEC CICS UNLOCK { DATASET(name) | FILE(name) } [SYSID(name)] END-EXEC.

Wait convid suspend task until accumulated data has been transmitted during an APPC conversationEXEC CICS WAIT CONVID(name) [STATE(data-area)] END-EXEC.

Wait event delay the task until a previously issued POST has expiredEXEC CICS WAIT EVENT ECADDR(pointer-value) END-EXEC.

Wait journalnum synchronizes the current task with a previously written journal entry by suspending the task until the record has been successfully written to the journal fileEXEC CICS WAIT JOURNALNUM(data-value) [REQID(data-value)] [STARTIO] END-EXEC.

Write write a record to a fileEXEC CICS WRITE { DATASET(name) | FILE(name) } FROM(data-area) [LENGTH(data-area)] RIDFLD(data-area) [KEYLENGTH(data-area)] [SYSID(name)] [RBA | RRN] [MASSINSERT] END-EXEC.

Write journalnum write a record to the journal fileEXEC CICS WRITE JOURNALNUM(data-value) JTYPEID(data-value) FROM(data-area) [LENGTH(data-area)] [PREFIX(data-value) [PFXLENG(data-value)]] [REQID(data-area)] [WAIT] [STARTIO] [NOSUSPEND] END-EXEC.

Write operator write a message to a system consoleEXEC CICS WRITE OPERATOR TEXT(data-value) [TEXTLENGTH(data-value)] [ROUTECODES(data-value) [NUMROUTES)data-value)]] [ACTION(data-value) | EVENTUAL | IMMEDIATE | CRITICAL | REPLY(data-area) MAXLENGTH(data-value) [REPLYLENGTH(data-area)] [TIMEOUT(data-value)]] END-EXEC.

Writeq td write a record to a transient data queueEXEC CICS WRITEQ TD QUEUE(name) FROM(data-area) [LENGTH(data-area)] [SYSID(name)] END-EXEC.

Writeq ts write a record to a temporary storage queueEXEC CICS WRITEQ TS QUEUE(name) FROM(data-area) [LENGTH(data-area)] [ITEM(data-value) [REWRITE]] [NUMITEMS(data-area)] [SYSID(name)] [MAIN | AUXILIARY] [NOSUSPEND] END-EXEC.

Xctl terminate the current program and execute the one specifiedEXEC CICS XCTL PROGRAM(name) [COMMAREA(data-area) [LENGTH(data-value)]] [INPUTMSG(data-area) [INPUTMSGLEN(data-value)]] END-EXEC.

91

EIBRESP Codes (covers codes produced from I/O calls)Value Condition Value Condition

00 NORMAL 55 ENQBUSY01 ERROR 56 ENVDEFERR02 RDATT 57 IGREQCD03 WRBRK 58 SESSIONERR04 EOF 59 SYSBUSY05 EODS 60 SESSBUSY06 EOC 61 NOTALLOC07 INBFMH 62 CBIDERR08 ENDINPT 63 INVEXITREQ09 NONVAL 64 INVPARTNSET10 NOSTART 65 INVPARTN11 TERMIDERR 66 PARTNFAIL12 FILENOTFOUND 69 USERIDERR13 NOTFND 70 NOTAUTH14 DUPREC 72 SUPPRESSED15 DUPKEY 80 NOSPOOL16 INVREQ 81 TERMERR17 IOERR 82 ROLLEDBACK18 NOSPACE 83 END19 NOTOPEN 84 DISABLED20 ENDFILE 85 ALLOCERR21 ILLOGIC 86 STRELERR22 LENGERR 87 OPENERR23 QZERO 88 SPOLBUSY24 SIGNAL 89 SPOLERR25 QBUSY 90 NODEIDERR26 ITEMERR 91 TASKIDERR27 PGMIDERR 92 TCIDERR28 TRANSIDERR 93 DSNNOTFOUND29 ENDDATA 94 LOADING31 EXPIRED 95 MODELIDERR32 RETPAGE 96 OUTDESCRERR33 RTEFAIL 97 PARTNERIDERR34 RTESOME 98 PROFILEIDERR35 TSIOERR 99 NETNAMERR36 MAPFAIL 100 LOCKED37 INVERRTERM 101 RECORDBUSY38 INVMPSZ 102 UOWNOTFOUND39 IGREQID 103 UOWLNOTFOUND40 OVERFLOW 104 LINKABEND41 INVLDC 105 CHANGED42 NOSTG 106 PROCESSBUSY43 JIDERR 107 ACTIVITYBUSY44 QIDERR 108 PROCESSERR45 NOJBUFSP 109 ACTIVITYERR46 DSSTAT 110 CONTAINERERR47 SELNERR 111 EVENTERR48 FUNCERR 112 TOKENERR49 UNEXPIN 113 NOTFINISHED50 NOPASSBKRD 114 POOLERR51 NOPASSBKWR 115 TIMERERR53 SYSIDERR 116 SYMBOLERR54 ISCINVREQ 117 TEMPLATERR

121 RESUNAVAIL

92

Retornos / Handle Conditions

ACTIVITYBUSY ACTIVITYERR ALLOCERR CBIDERR CONTAINERERR CHANGED CSDERR DISABLED DSNNOTFOUND DSSTAT DUPKEY DUPREC DUPRES END ENDDATA ENDFILE ENDINPT ENQBUSY ENVDEFERR EOC EODS EOF ERROR EVENTERR EXPIRED FILENOTFOUND FUNCERR IGREQCD IGREQID ILLOGIC INBFMH INVERRTERM INVEXITREQ INVLDC INVMPSZ INVPARTN INVPARTNSET INVREQ INVTSREQ IOERR ISCINVREQ ITEMERR JIDERR LENGERR LINKABEND LOADING LOCKED MAPFAIL MODELIDERR NETNAMEIDERR NODEIDERR NOJBUFSP NONVAL NOPASSBKRD NOPASSBKWR NOSPACE NOSPOOL NOSTART NOSTG NOTALLOC NOTAUTH NOTFINISHED NOTFND NOTOPEN OPENERR

93

OUTDESCRERR OVERFLOW PARTNERIDERR PARTNFAIL PGMIDERR POOLERR PROCESSBUSY PROCESSERR PROFILEIDERR QBUSY QIDERR QZERO RDATT RECORDBUSY RESIDERR RESUNAVAIL RETPAGE ROLLEDBACK RTEFAIL RTESOME SELNERR SESSBUSY SESSIONERR SIGNAL SPOLBUSY SPOLERR STRELERR SUPPRESSED SYMBOLERR SYSBUSY SYSIDERR TASKIDERR TCIDERR TEMPLATERR TERMERR TERMIDERR TIMERERR TOKENERR TRANSIDERR TSIOERR UNEXPIN UOWLNOTFOUND UOWNOTFOUND USERIDERR VOLIDERR

94

ASSIGN’s : informações que podem ser obtidas

< ABCODE() > < ABDUMP() > < ABPROGRAM() > < ACTIVITY() > < ACTIVITYID() > < ALTSCRNHT() > < ALTSCRNWD() > < APLKYBD() > < APLTEXT() > < APPLID() > < ASRAINTRPT() > < ASRAKEY() > < ASRAPSW() > < ASRAREGS() > < ASRASPC() > < ASRASTG() > < BRIDGE() > < BTRANS() > < CMDSEC() > < COLOR() > < CWALENG() > < DEFSCRNHT() > < DEFSCRNWD() > < DELIMITER() > < DESTCOUNT() > < DESTID() > < DESTIDLENG() > < DS3270() > < DSSCS() > < EWASUPP() > < EXTDS() > < FACILITY() > < FCI() > < GCHARS() > < GCODES() > < GMMI() > < HILIGHT() > < INITPARM() > < INITPARMLEN() > < INPARTN() > < INVOKINGPROG() > < KATAKANA() > < LANGINUSE() > < LDCMNEM() > < LDCNUM() > < MAPCOLUMN() > < MAPHEIGHT() > < MAPLINE() > < MAPWIDTH() > < MSRCONTROL() > < NATLANGINUSE() > < NETNAME() > < NEXTTRANSID() > < NUMTAB() > < OPCLASS() > < OPID() > < ORGABCODE() > < OUTLINE() > < PAGENUM() >

95

< PARTNPAGE() > < PARTNS() > < PARTNSET() > < PRINSYSID() > < PROCESS() > < PROCESSTYPE() > < PROGRAM() > < PS() > < QNAME() > < RESSEC() > < RESTART() > < RETURNPROG() > < SCRNHT() > < SCRNWD() > < SIGDATA() > < SOSI() > < STARTCODE() > < STATIONID() > < SYSID() > < TASKPRIORITY() > < TCTUALENG() > < TELLERID() > < TERMCODE() > < TERMPRIORITY() > < TEXTKYBD() > < TEXTPRINT() > < TRANPRIORITY() > < TWALENG() > < UNATTEND() > < USERID() > < USERNAME() > < USERPRIORITY() > < VALIDATION() >

96

ABENDS mais comuns do CICS

Erro Explanação Solução / Ação / ObservaçãoABM0 The specified map was not found

in the specified mapset.An ABM0 error means that the map name in the COBOL program does not match the map name in front of the DFHMDI assembler macro. Review the COBOL and assembler programs and make sure that the names match.This error can occur when executing either a SEND MAP or RECEIVE MAP command.Check that you have not misspelled the map name.

AEIx...AEYx

There are numerous abends that start with AEI or AEY. They indicate that an exception has occured, and RESP (or NOHANDLE) is not is use. The last character indicates the exact error.CICS detected an exceptional condition for which no EXEC CICS HANDLE CONDITION command is active and the RESP or NOHANDLE option is not included in the associated command.Because of their similar characteristics, these abnormal termination codes for the EXEC interface program are described as a group.

AEIA ERRORAEID EOF (end of file)AEIE EODSAEIG INBFMHAEIH ENDINPTAEII NONVALAEIJ NOSTARTAEIK TERMIDERRAEIL FILENOTFOUNDAEIM NOTFNDAEIN DUPRECAEIO DUPKEYAEIP INVREQAEIQ IOERRAEIR NOSPACEAEIS NOTOPENAEIT ENDFILEAEIU ILLOGICAEIV LENGERR (*)AEIW QZEROAEIZ ITEMERRAEI0 PGMIDERRAEI1 TRANSIDERRAEI2 ENDDATAAEI3 INVTSREQAEI8 TSIOERRAEI9 MAPFAILAEYA INVERRTERMAEYB INVMPSZAEYC IGREQIDAEYE INVLDCAEYG JIDERRAEYH QIDERRAEYJ DSSTATAEYK SELNERRAEYL FUNCERRAEYM UNEXPINAEYN NOPASSBKRDAEYO NOPASSBKWRAEYP SEGIDERRAEYQ SYSIDERRAEYR ISCINVREQAEYT ENVDEFERRAEYU IGREQCDAEYV SESSIONERRAEYX USERIDERRORAEYY NOTALLOCAEYZ CBIDERRAEY0 INVEXITREQAEY1 INVPARTNSETAEY2 INVPARTNAEY3 PARTNFAILAEY7 NOTAUTHAEY9 DB2/IDMS database is not up

97

Alguns detalhes

AEI0 = A PGMIDERR has occurred. This typically occurs if the SNPNAME= operand specified the wrong name for the signon program and TNDGMM has attempted to EXEC CICS LINK to a program that is not defined in the PPT. Check that the TNDCICS SNPNAME= operand during the TNDGMM assembly specified the proper signon program name.

AEI1 = AEI1 is the CICS transaction abend indicating TRANSIDERR or invalid transaction code used. This will typically mean that TNDGMM has attempted to EXEC CICS START an initial transaction which is not known to CICS. The transaction that entered CICS via the SSI or SSX is not defined (or is disabled) within CICS' PCT. Display the status of the transaction (CEMT, etc.) and evaluate why CICS would not accept the transaction id.

AEI9 = There are two possible reasons why this abend has occurred: The data to be mapped has a length of zero or does not contain a set-buffer-address (SBA) sequence. It applies to 3270 devices only. The receiving data area holds the unmapped input data stream. The amount of unmapped data moved to the user's area is limited to the length specified in the LENGTH option of the RECEIVE MAP command. The program has issued a RECEIVE MAP command to which the terminal operator has responded by pressing (a) either a CLEAR or PA key, (b) ENTER, or (c) a function key without entering data.

AEIV = There are 3 possible reasons why this abend has occurred:1 - The record length (01 RECORD-LENGTH PIC S9(4) COMP VALUE...) specified in working-storage does not match the record length stored on the file 2 - The calculated record length, obtained from adding up the number of characters defined in the working storage layout does not match the specified record length (RECORD-LENGTH) or the length stored on the file 3 - The picture given to RECORD-LENGTH is not stored as a two byte field. Usually this error occurs because the picture is S9(8) instead of S9(4) or is not COMP.

AFCA A dataset could not be accessed because it was disabled.

AICA indicates time-out This abend usually occurs if your program is looping. There are CICS parameters that determine how long a task can run without giving up control. The ICVR parameter in the CICS SIT table can be used to specify a value for all tasks running in CICS, or you can specify a RUNAWAY value when you define a transaction . If a program is looping then you may not get an AICA abend, because the timer can be reset when certain events occur, eg some EXEC CICS commands may reset the

98

timer to zero.

AKCP AKCP and AKCT indicate that a timeout of the task occurred.

This may be due to a deadlock.

AKCT AKCP and AKCT indicate that a timeout of the task occurred.

This may be due to a deadlock.

APCT A program was not found or was disabled.(An APCT error means that mapset name in the COBOL program does not match the mapset name in front of the DFHMSD assembler macro. Review the COBOL and assembler programs and make sure that the names match. This error can occur when executing either a SEND MAP or RECEIVE MAP command.)

Check the transaction definition to see if the program name was misspelled. Check that the program is enabled. Check that the program is in an appropriate Load Library (ie one defined to the current CICS system).

ASRA It indicates a Program Check Exception, roughly equivalent to having an S0C7 in a batch program.

Check for spaces in a packed decimal numeric field and changes to the file and record layouts.

ATCH ATCH and ATCI indicates that the task was purged. The task may have been purged by someone issuing a CEMT command to purge the task, or by CICS because the Deadlock timeout limit has been exceeded or because there was not enough virtual storage available to run all the tasks in CICS (Short on Storage)

ATCI ATCH and ATCI indicates that the task was purged. The task may have been purged by someone issuing a CEMT command to purge the task, or by CICS because the Deadlock timeout limit has been exceeded or because there was not enough virtual storage available to run all the tasks in CICS (Short on Storage)

99