🧠 Explicação
O comando EXEC CICS ADDRESS
é usado para obter o endereço (ponteiro) de diversas áreas de memória controladas pelo CICS, como a COMMAREA, TWA, CWA, EIB, entre outras. É especialmente útil quando você precisa manipular dados entre programas ou acessar informações do ambiente de execução da transação.
Esses endereços são retornados para variáveis do tipo ponteiro (no COBOL, geralmente do tipo USAGE IS POINTER
), permitindo ao programa acessar diretamente o conteúdo dessas áreas.
🛠️ Usos mais comuns
-
Obter o endereço da COMMAREA em programas que recebem dados de outro
-
Acessar o EIB em subprogramas
-
Compartilhar informações entre transações via TWA, TCTUA ou CWA
-
Manipular ambientes de segurança com ACEE
🧾 Sintaxe básica
EXEC CICS ADDRESS
opção(destino)
END-EXEC.
💻 Exemplo prático em COBOL
01 PTR-COMM USAGE IS POINTER.
01 PTR-EIB USAGE IS POINTER.
EXEC CICS ADDRESS COMMAREA(PTR-COMM) END-EXEC.
EXEC CICS ADDRESS EIB(PTR-EIB) END-EXEC.
⚙️ Opções disponíveis
Opção | Finalidade |
---|---|
ACEE |
Endereço do bloco de controle de segurança |
COMMAREA |
Endereço da área de comunicação entre programas |
CWA |
Endereço da área de trabalho comum |
EIB |
Endereço do bloco de interface EXEC (usado em subprogramas) |
TCTUA |
Endereço da área de usuário do terminal (válido para a mesma sessão) |
TWA |
Endereço da área de trabalho da transação (válida na mesma tarefa) |
📋 Detalhamento das áreas
▶ ACEE(ptr-ref)
-
Acessa o bloco de segurança do usuário conectado
-
Útil para verificar permissões e dados do login
-
Se não existir, retorna ponteiro nulo
X'FF000000'
▶ COMMAREA(ptr-ref)
-
Recupera o endereço da área de comunicação entre programas
-
Deve ser usada sempre que o programa receber dados via
COMMAREA
▶ CWA(ptr-ref)
-
Acessa a área comum de trabalho do sistema (útil para tabelas compartilhadas)
-
Válida apenas dentro do mesmo sistema CICS
▶ EIB(ptr-ref)
-
Recupera o endereço do bloco EIB (em subprogramas)
-
Necessário para comandos com
RESP
,RESP2
ou análise de contexto
▶ TCTUA(ptr-ref)
-
Acessa a área de usuário do terminal
-
Permite compartilhamento de dados apenas se for o mesmo terminal
▶ TWA(ptr-ref)
-
Área privada da transação
-
Permite compartilhar dados entre programas da mesma tarefa
-
Respeita a definição de
TASKDATALOC
(acima ou abaixo da linha de 16MB)
💡 Dicas
-
Sempre verifique se o ponteiro retornado não está nulo (
X'FF000000'
) antes de utilizá-lo. -
Em subprogramas, use
ADDRESS EIB
se for acessar campos comoEIBRESP
, pois o EIB não é passado automaticamente. -
COMMAREA
,TWA
eTCTUA
são alternativas para passagem de dados — use conforme o escopo:-
COMMAREA
: entre programas viaLINK
-
TWA
: mesma tarefa -
TCTUA
: mesmo terminal
-
✅ Conclusão
O comando EXEC CICS ADDRESS
é indispensável quando se deseja acessar diretamente áreas de memória internas do CICS, como COMMAREA
, EIB
ou TWA
. Ele torna possível compartilhar dados entre programas, acessar o contexto da transação e até mesmo interagir com ambientes de segurança. Dominar esse comando é fundamental para quem trabalha com CICS em nível profissional.