|
É 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'.
|