🧠 Explicação
O comando EXEC CICS WRITEQ TD
grava dados em uma fila de dados transitórios (TD Queue). Essas filas são usadas para saída de mensagens, registros de log, comunicação entre tarefas ou até impressão. Os dados são escritos de forma sequencial e a fila deve estar previamente definida no CICS.
🔧 Usos mais comuns
-
Registrar logs de processamento ou mensagens de erro.
-
Enviar dados para dispositivos de saída (ex: impressoras, saídas externas).
-
Comunicar tarefas via filas do tipo intra-partição.
-
Armazenar mensagens que serão processadas por tarefas em lote.
-
Gravar eventos ou registros para auditoria.
🧾 Sintaxe
EXEC CICS WRITEQ TD
QUEUE('TD01')
FROM(AREA-DADOS)
LENGTH(TAMANHO)
END-EXEC.
Especificando sistema remoto:
EXEC CICS WRITEQ TD
QUEUE('TD02')
FROM(AREA-REMOTA)
LENGTH(200)
SYSID('CICR')
END-EXEC.
💻 Exemplo prático
MOVE 'ERRO DE PROCESSAMENTO NO CLIENTE 000123' TO MENSAGEM-LOG.
EXEC CICS WRITEQ TD
QUEUE('LOG1')
FROM(MENSAGEM-LOG)
LENGTH(40)
END-EXEC.
📌 Regras
-
QUEUE
deve ser o nome simbólico da fila TD (1 a 4 caracteres), já definida no CICS. -
FROM
indica a área da memória que contém os dados a serem gravados. -
LENGTH
deve conter o tamanho dos dados que serão escritos. -
Com
SYSID
, a gravação será feita em fila remota (via IPIC, se for thread-safe). -
A gravação é destrutiva: o dado será consumido e retirado da fila quando lido.
-
TD Queue deve estar habilitada e corretamente configurada.
💡 Dicas
-
Verifique se a fila está definida como intra-partition (para comunicação local) ou extra-partition (para impressão, saída externa, etc).
-
Combine com
HANDLE CONDITION
para capturar falhas comoNOSPACE
ouQIDERR
. -
Utilize nomes padronizados de filas para facilitar manutenção e leitura de logs.
-
Se o volume de escrita for alto, use buffers e controle de tamanho para não estourar espaço.
🚨 Condições que podem ocorrer
-
DISABLED
: fila desativada. -
QIDERR
: nome da fila inválido ou não definido. -
LENGERR
: tamanho do dado incorreto. -
IOERR
: erro de entrada/saída ao gravar. -
NOSPACE
: sem espaço disponível na fila. -
LOCKED
: recurso bloqueado. -
NOTOPEN
: fila não está aberta. -
INVREQ
,ERROR
,SYSIDERR
,ISCINVREQ
,NOTAUTH
: outros erros operacionais ou de permissão.
✅ Conclusão
O EXEC CICS WRITEQ TD
é o comando ideal para gravação de dados em filas temporárias no CICS, sendo amplamente utilizado para logs, comunicação entre tarefas ou saída de dados para dispositivos. É direto, eficiente e essencial em qualquer sistema bem estruturado com CICS. Usou, gravou — e o próximo programa já pode consumir.