CICS - Dados transitórios ( TD )


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 - Dados transitórios ( TD )

É usada para o armazenamento de dados transitórios do CICS.

Os dados são disponíveis para processamento 'SEQUENCIAL' para qualquer tarefa que desejar acessar.

Cada registro a ser gravado deve possuir um nome.
O nome pode variar em extensão de 1 a 4 caracteres.

Deve-se tomar o cuidado de atribuir uma identificação única para o registro.

Deve ser definido na DESTINATION CONTROL TABLE ( DCT ) o nome dos dados transitorios. Deve-se, tambem, definir se os dados sao 'INTRA-PARTITION' ou 'EXTRA-PARTITION'.

Os dados gravados em INTRA-PARTITION possuem as seguintes caracteristicas:

  • sao gerados e acessados somente pelo cics
  • podem ser gravados por tarefas diferentes
  • pode ser lido apenas uma vez
  • pode ser definido pelo programador de aplicaçao para ser deletado logo após a leitura
  • são gerados registros sequenciais de tamanho variavel
  • ficam armazenados em dispositivos de acesso direto

Os dados gravados em EXTRA-PARTITION possuem as seguintes caracteristicas:

  • pode ser gerado no 'CICS' e acessado via 'BATCH'
  • pode ser gerado em 'BATCH' e acessado via 'CICS'
  • podem ser gravados por tarefas diferentes
  • deve ser definido na 'DCT' como entrada ou saida
  • pode ser lido apenas uma vez
  • sao gerados registros sequenciais de tamanho fixo ou variavel
  • podem ficar armazenados em disco, fita ou impressora

Comando WRITEQ TD

Formato do comando:

EXEC CICS WRITEQ TD Explicação do argumento
QUEUE ('WORK-NOME') Especifica-se o nome de dados atribuido ao registro.
Pode ser um literal ou uma area de dados contendo o nome a ser atribuido ao registro.
FROM (WORK-AREA) Especifica-se a area onde se encontra o registro a ser gravado.
LENGTH (+100) Especifica-se o tamanho da área de dados a ser gravada.

Este comando é utilizado para gravar registros de dados transitórios ( TRANSIENT DATA - TD )

A opção 'LENGTH' somente precisa ser especificada caso os registros sejam gravados em outro dispositivo que não seja disco.

Exemplo do comando:

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

Explicação do exemplo:

O CICS gravará o registro como dados transitórios (TD) 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 não houver mais espaço na fila de TD para a gravação do registro.
    Esta condição só ocorre quando se processam destinos de intrapartição.
  • NOTOPEN: ocorre se o destino estiver fechado.
    Esta condição só ocorre quando se processam destinos de extrapartição.
    Estes destinos podem ser abertos e fechados pelo administrador do CICS.
  • QIDERR: não existe nenhuma fila 'TD', definido na 'DCT' com o nome especificado na opção 'QUEUE'.
  • LENGERR: o tamanho do registro lido É maior do que o tamanho mÁximo da fila definido na 'DCT'.
    Ocorre também se for especificado um tamanho errado para registros de tamanho fixo.
    Ocorre também se não for codificada a opção 'LENGTH' e a fila de destino não for disco.
  • Outros: ioerr.

Comando READQ TD

Formato do comando:

EXEC CICS READQ TD 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. Não pode ser maior que o tamanho especificado na 'DCT'.

Esse comando é utilizado para ler registros de dados transitórios ( TRANSIENT DATA - TD )

Exemplo do comando:

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

Explicação do exemplo:

O CICS lera' o proximo registro de dados transitorios ( TD ) com o nome especificado em 'WORK-NOME'.
Os dados ficarao em 'WORK-AREA' com o tamanho de 100 bytes.

Condicao de excecao:

  • LENGERR: o tamanho do registro lido é maior do que o tamanho maximo da fila definido na 'DCT'.
    Ocorre também se for especificado um tamanho errado para registros de tamanho fixo.
    Ocorre também se nao for codificada a opcao 'LENGTH' e a fila de destino nao for disco.
    Ocorre também se nao for codificada a opcao 'LENGTH' e o registro for de tamanho variável.
    O tamanho do registro lido é maior do que o tamanho especificado na opção 'LENGTH'.
    Neste caso, a area indicada na opção será atualizado com o valor real do tamanho do registro.
  • NOTOPEN: ocorre se o destino estiver fechado.
  • QIDERR: não existe nenhuma fila 'TD', definido na'DCT' com o nome especificado na opção 'QUEUE'
  • QZERO: não existe nenhum registro armazenado na fila de dados transitórios ( td )
  • Outros: INVREQ, IOERR, LENGERR, QIDERR.

Comando DELETEQ TD

Formato do comando:

EXEC CICS DELETEQ TD 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 area de dados contendo o nome da fila a ser deletada.

Este comando é utilizado para deletar registros de uma fila de dados transitórios ( TRANSIENT DATA - TD )

Este comando será utilizado se a área em que foi gravado o registro de dado transitório for não-reutilizavel.

Exemplo do comando:

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

Explicação do exemplo:

O CICS deletará a fila de dados transitórios ( TD ), ou seja, deletará todos os registros pertencentes a fila especificada.

Condiçao de exceção:

QIDERR: ocorre se nao existir nenhuma fila de TD com o nome especificado na opcao 'QUEUE'.