CICS - Memória temporária ( TS )


Volta a página anterior

Volta ao Menu Principal


Desenvolvido por DORNELLES Carlos Alberto - Analista de Sistemas - Brasília DF. - cad_cobol@hotmail.com

CICS - Memória temporária ( TS )

É usada para o armazenamento de dados intermediários do CICS.

É gerada e acessada apenas pelo CICS.

Pode ser acessada por varias tarefas.

Fica armazenado em memória principal ou em memória auxiliar ( DISCO ), até que seja deletada ou o CICS pare de funcionar.

Não é necessário constar em nenhuma tabela.

Cada registro a ser gravado deve possuir um nome. O nome pode variar em extensão de 1 a 8 caracteres.
Deve-se tomar o cuidado de atribuir uma identificação única para o registro.

Pode ser gravado um ou mais registros com o mesmo nome e dentro de um conjunto de registros com o mesmo nome, um registro específico poderá ser acessado.

Comando WRITEQ TS

Formato do comando:

EXEC CICS WRITEQ TS Explicação do argumento
QUEUE    ('WORK-NOME') Especifica-se o nome de dados atribuido ao registro.
Pode ser um literal ou uma área de dados contendo o nome a ser atribuido ao registro.
FROM      (WORK-AREA) Especifica-se a área onde se encontra o registro a ser gravado
LENGTH   (+100) Especifica-se o tamanho da área de dados a ser gravada.
ITEM        (WORK-POSI) Se estiver sendo incluído registros, o CICS coloca neste campo o número do registro gravado. Se estiver sendo feito atualização, deve-se informar o número do registro a ser alterado através deste campo.
O formato deste campo é PIC S9(004) COMP.
REWRITE Especifica-se que o regstro cujo número está sendo informado na opção 'ITEM' é para ser atualizado.
MAIN Indica que o registro é para ser armazenado na memória principal.
Salvo em raras ocasiões e para pequenas quantidades de registros, esta opção não deve ser utilizada
AUXILIARY Indica que o registro é para ser armazenado na memória auxiliar. Esta opção é o default.

Este comando é utilizado para gravar registros em memória temporária ( TEMPORARY STORAGE - TS )

Exemplo do comando:

    EXEC CICS 
         WRITEQ TS QUEUE ('WORK-NOME')
                    FROM  (WORK-AREA)
                    LENGTH (+100)
    END-EXEC.

Explicação do exemplo:

O CICS gravará o registro em memoria temporaria ( TS ) com o nome especificado em 'WORK-NOME', os dados que estão em 'WORK-AREA' com o tamanho de 100 bytes.

Condição de exceção:

  • NOSPACE: ocorre se nao houver mais espaço em memória para a gravação do registro.
    A ação padrão do CICS é suspender a tarefa até existir espaço.
    Caso nao queira que tal fato ocorra, deve ser codificado um 'HANDLE CONDITION' para tal exceção.
  • ITEMERR: ocorre se o número especificado em item for diferente dos números de registros existentes na fila 'TS', caso use-se a opção 'REWRITE'.
  • QIDERR: não existe nenhuma fila 'TS' com o nome especificado na memória temporária.
  • INVREQ: o tamanho do registro a ser gravado é zero.
  • LENGERR: o tamanho do registro lido é maior do que o tamanho especificado na opcao 'LENGTH'.
  • Outros: dsiderr, illogic, notopen.

Comando READQ TS

Formato do comando:

EXEC CICS READQ TS Explicação do argumento
QUEUE    ('WORK-NOME') Especifica-se o nome de dados do registro que se deseja acessar.
Pode ser um literal ou uma area de dados contendo o nome do registro a ser lido.
INTO      (WORK-AREA) Especifica-se a área onde deverá ser colocado o registro lido.
LENGTH (+100) Especifica-se o tamanho do registro a ser lido.
ITEM (WORK-POSI) Especifica-se o núumero do registro a ser lido.
Esta opção deve ser usada se for necessário acessar o registro diretamente.
O formato deste campo é PIC S9(004) COMP.
NEXT Especifica que o próximo registro da fila deverá ser acessado.
Esta opção deve ser usada se for necessário acessar o registro sequencialmente.
Esta opção é o DEFAULT.

Este comando é utilizado para ler registros em memória temporária ( TEMPORARY STORAGE - TS )

Exemplo do comando:

    EXEC CICS 
         READQ TS QUEUE ('WORK-NOME')
         INTO  (WORK-AREA)
       LENGTH (+100)
    END-EXEC.

Explicação do exemplo:

O CICS lerá o próximo registro em memória temporária ( TS ) com o nome especificado em 'WORK-NOME'.
OS dados ficarão em 'WORK-AREA' com o tamanho de 100 bytes.

Condição de exceção:

  • ITEMERR: ocorre se o número especificado em item for diferente dos numeros de registros existentes na fila 'TS' ou chegou-se ao final da fila
  • Outros: INVREQ, IOERR, LENGERR, QIDERR.

Comando DELETEQ TS

Formato do comando:

EXEC CICS DELETEQ TS Explicação do argumento
QUEUE    ('WORK-NOME') Especifica-se o nome da fila de dados que se deseja deletar.
Pode ser um literal ou uma área de dados contendo o nome da fila a ser deletada.

Este comando é utilizado para deletar registros em memória temporária ( TEMPORARY STORAGE - TS )

Exemplo do comando:

    EXEC CICS 
         DELETEQ TS QUEUE ('WORK-NOME')
    END-EXEC.

Explicação do exemplo:

O CICS deletará a fila de dados em memória temporária ( TS ), ou seja, deletará todos os registros pertencentes fila especificada.

Deve-se sempre lembrar que o espaço ocupado pelos dados na memória temporária não é automaticamente liberado apos os dados serem usados.
Consequentemente, quando não necessitar mais dos dados na memória temporária, deve-se liberar o espaço ocupado emitindo o comando acima.

Condição de exceção:

QIDERR: ocorre se não existir nenhuma fila de TS com o nome especificado na opção 'QUEUE'.