Escolar Documentos
Profissional Documentos
Cultura Documentos
Slide Assunto
004................Introduction to CICS
016................Transaction Flow
040................Programming
062................Queueing
081................Command Level tools
089................Terminal Management
099................File Management
119................Data Integrity and Recovery
137................System Management
152................Communication
19/04/21 Celepar-GSO-Disop CICS-Introdução 1
colodi@pr.gov.br
Introduction to CICS
19/04/21 Celepar-GSO-Disop CICS-Introdução 2
colodi@pr.gov.br
CICS
C.I.C.S
Customer Information Control System
• Foi desenvolvido em 1968.
• Tornou-se programa produto IBM em 1969
• Completa 30 anos consolidando sua posição
no mercado devido a sua constante
evolução.
• Controlar a execução de aplicativos em
tempo real.
• Suprir a necessidade de acesso rápido à
bases de dados.
19/04/21 Celepar-GSO-Disop CICS-Introdução 3
colodi@pr.gov.br
CICS
Transação
• Solicitação de um usuário para a realização
de um serviço.
– Saques em caixas eletrônicos
– Compra de passagem
– Reserva de hotel
– Serviço médico
Processamento da Transação
(Saque de dinheiro)
• Caixas eletrônicos espalhados
• Muitas pessoas solicitando saques ao
mesmo tempo
• Controlar a execução coordenada de todas
essas solicitações de modo que todos os
usuários sejam atendidos com eficiência.
Transaction Manager
• High Availability Nosso gerenciador
• Fast and Consistent precisa ter grande
disponibilidade,
Response Time funcionando 24 h por
• End-to-End Integrity dia. Deve ser rápido e
• Repetitive consistente, garantindo
integridade. Por ter um
• Low Cost / grande volume deve
Transaction ter um baixo custo por
transação.
transação
19/04/21 Celepar-GSO-Disop CICS-Introdução 6
colodi@pr.gov.br
CICS
OLTP
OnLine Transaction Processing
Connectivity Security
Business Logic Logging
Multithreading Exception Handling
Queue Management APLICATION
Locking
Recovery Time Control Communication
Scheduling Performance Administration
OPERATING SYSTEM
HARDWARE
COMUNICATIONS DB MANAGER
OPERATING SYSTEM
HARDWARE
APLICATIONS
TRANSACTION MANAGER
CICS
Aplicaion Server
OPERATING SYSTEM
MVS/ESA VSE OS/400 AIX OS/2
HARDWARE
Transaction Flow
19/04/21 Celepar-GSO-Disop CICS-Introdução 14
colodi@pr.gov.br
CICS
– Um ou mais programas
• Na execução de uma única task pode ocorrer o processamento de
mais de um programa da aplicação.
– Task Id
• Cada task tem uma identificação própria que é um número
sequencial ascendente conhecido como TASKID.
TCP TDP
SCP EIP DCT
TCT
CSA DISPAT. TSP
BMS FCP
PCP TRP
FCT
ICP PCT PPT
Execução concorrente
• Dois usuários executando a mesma transação.
• Duas Tasks, cada uma com a sua taskid.
• São criadas duas TCAs, uma para cada task.
• As instruções do programa (Procedure) serão
compartilhadas e a work-storage terá uma
cópia para cada task.
• Este conceito de programação é chamado
semi-reentrante.
19/04/21 Celepar-GSO-Disop CICS-Introdução 21
colodi@pr.gov.br
CICS
TCP TDP
SCP EIP DCT
TCT
CSA DISPAT. TSP
BMS FCP
PCP TRP
FCT
ICP PCT PPT
WORKING
TCA STORAGE
APLICATION
PROGRAM WORKING
TCA STORAGE
Task Flow
• Cada módulo ou grupo de módulos executa
funções específicas.
• Cada função solicitada ao CICS faz com que a task
precise aguardar (wait), enquanto isso o CICS
executa outras tasks.
• A seguir veremos, de forma bastante simplificada,
o fluxo de uma task desde que o usuário digitou o
seu pedido até receber a resposta na tela, lendo um
arquivo:
Sch. task
Get Stor
Rec Read
Wait
PrepOut
SchWrite
Req.Send
Term.task TermTran Return
Write FreeStor
19/04/21 Celepar-GSO-Disop CICS-Introdução 24
colodi@pr.gov.br
CICS
SIT
DFHSIT TYPE=CSECT,
AIEXIT=DFHZATDC, AUTOINSTALL USER PROG.NAME (.CEL)
APPLID=CEL3CIC9, VTAM APPL IDENTIFIER
DATFORM=DDMMYY, *(MMDDYY) CSA DATE FORMAT
DSALIM=7M, *(5M)UPPER LIMIT OF DSA BELOW 16MB
EDSALIM=90M, *(20M) UPPER LIMIT DSA ABOVE 16MB
GMTRAN=CSGM, INITIAL TRANSACTION
GRPLIST=DFHLIST, LIST NAME OF CSD GROUPS FOR STARTUP
MXT=60, *(5) MAXIMUM NUMBER OF TASKS IN CICS*
SUFFIX=A4, SUFFIX OF THIS SIT
TCT=A4, TERMINAL CONTROL TABLE OPTION/SUF
END DFHSITBA
Macro x RDO
• As tabelas de recursos são carregadas na
memória na inicialização do CICS e passam
a valer durante toda a rodada.
• Temos duas formas para criarmos as
tabelas:
– Macros Assembler
– RDO (Resource Definition Online)
Macros Assembler
• Criamos um fonte com as macros de
definição de recursos, compilamos a tabela,
em seguida a linkeditamos e após reciclar o
CICS a tabela é validada em memória, essa
forma de definição de recursos está sendo
gradativamente substituída, já que para cada
novo recurso ser validado precisa reciclar o
CICS, prejudicando sua disponibilidade.
Transação CEDA
• Um novo recurso é definido com a função
DEFINE.
• Este recurso será armazenado num arquivo
Vsam KSDS, chamado DFHCSD
(Cics System Definition Dataset).
• Após isso, utilizando-se da função
INSTALL, essa definição é instalada na
memória do CICS e o recurso já está
disponível para ser utilizado.
19/04/21 Celepar-GSO-Disop CICS-Introdução 33
colodi@pr.gov.br
CICS
Grupo de Recursos
• Todo recurso definido deve fazer parte de
um grupo. O nome do grupo é indicado na
própria tela onde se define o recurso.
• Os grupos podem ser organizados em
LISTAS também.
• É uma forma de organizarmos os recursos
que precisamos administrar.
INTERVALO
Programming
19/04/21 Celepar-GSO-Disop CICS-Introdução 38
colodi@pr.gov.br
CICS
CICS Services
• Através do Command Level, programas acessam os mais diversos
serviços que o CICS oferece:
– Terminal
• Envio e recepção de dados (SEND), (RECEIVE)
– Arquivo
• Leitura/gravação de registros (READ), (WRITE)
– Programa
• Passagem de controle entre programas (LINK), ( XCTL)
– Task
• Alteração de prioridade
– Queueing
• Gravação de dados em filas TS e TD (WRITEQ)
– Outros - ........
19/04/21 Celepar-GSO-Disop CICS-Introdução 41
colodi@pr.gov.br
CICS
Exemplo
EXEC CICS RECEIVE INTO(W-IN) END-EXEC
MOVE NUMERO TO RECKEY
MOVE ...
EXEC CICS READ FILE(‘FILEA’)
INTO(W-REC)
RIDFLD(RECKEY)
END-EXEC
EXEC CICS SEND FROM(W-OUT) END-EXEC
EXEC CICS RETURN END-EXEC
Montagem de um programa
• Submeter o fonte do programa ao Translator
do CICS, que analisa o código.
• Cada comando EXEC CICS será convertido
para instruções e tornado comentário.
• Além da tradução, o Translator incluirá
algumas áreas de trabalho, que o CICS
utilizará durante a execução do programa.
• Um Translator para cada linguagem.
19/04/21 Celepar-GSO-Disop CICS-Introdução 44
colodi@pr.gov.br
CICS
Montagem de um programa
FONTE
CICS
TRANSLATOR
REL.
COMPILADOR
REL.
LOAD LINK EDIT
MODULE
Condições de exceção
EXEC CICS HANDLE CONDITION COND1 (LABEL1)
Coloca-se antes de emitir o comando e se quando o CICS
executar o comando acontecer a COND1 acontecerá
um desvio para LABEL1.
LINK
• O comando LINK (exec cics link) transfere
o controle para o programa especificado,
que executa sob a mesma task, e quando
este termina o controle volta para o
programa que emitiu o Link, na próxima
instrução após o Exec Cics Link.
• Podemos, opcionalmente, passar uma área
de dados de um programa para outro.
PROG1
MOVE ...
MOVE ...
LINK PROG2
MOVE ...
RETURN
PROG2
MOVE ...
MOVE ...
MOVE ...
RETURN
XCTL
• O comando XCTL (exec cics xctl) transfere
o controle para o programa especificado,
que executa sob a mesma task, e quando
este termina o controle NÃO é devolvido ao
programa que emitiu o comando XCTL e
sim ao nível imediatamente superior.
• Podemos, opcionalmente, passar uma área
de dados de um programa para outro.
PROG1
MOVE ...
MOVE ...
XCTL PROG2
MOVE ...
RETURN
PROG2
MOVE ...
MOVE ...
RETURN
MOVE ...
RETURN
Níveis de programas
• Podemos ter a execução de vários programas sob a
mesma task. Nesse caso a task executará sob
diferentes níveis lógicos de programas.
• O comando LINK faz descer um nível lógico,
enquanto que o XCTL mantém a task no mesmo nível
em que se encontra.
• O comando XCTL nunca volta para o programa que
fez a chamada.
• Em qualquer caso, ao término de cada programa o
controle sobe um nível. Quando o programa que
estiver no nível 1 terminar, a task será encerrada.
Níveis de
Programas
LINK PROGRAM(‘PROG2)
RETURN
....
RETURN
BMS
Basic Mapping Support 1/4
• O BMS permite a criação de telas
elaboradas de maneira simples.
• A essas telas, chamamos Mapas.
• Tem independência do tipo de terminal
(tamanho de tela, protocolo, outras), tratada
pelo BMS, sem alterar a aplicação.
• Um mapa é composto por duas entidades: o
mapa físico e o mapa simbólico.
19/04/21 Celepar-GSO-Disop CICS-Introdução 56
colodi@pr.gov.br
CICS
BMS
Basic Mapping Support 2 /4
• Os mapas são definidos através de macros
Assembler: DFHMSD (Mapset), DFHMDI
(Mapa), DFHMDF (Campos).
• O mapa físico contem caracteres de controle
para o terminal. Esse mapa é compilado,
linkeditado e seu nome deve estar definido na
Tabela de programas do CICS (PPT).
• O mapa lógico é a estrutura que o programa
manuseia, recebendo e enviando dados para o
terminal.
19/04/21 Celepar-GSO-Disop CICS-Introdução 57
colodi@pr.gov.br
CICS
BMS
Basic Mapping Support 3/4
• Podemos definir vários mapas lógicos sob um
mapa físico.
• Os comandos SEND MAP e RECEIVE MAP,
referenciam o mapa lógico e o físico.
• O programador pode criar efeitos de janelas,
construindo vários mapas menores para a
mesma tela.
• O BMS possibilita também a acumulação e
paginação de mapas, através de comandos
especiais ou pf’s.
19/04/21 Celepar-GSO-Disop CICS-Introdução 58
colodi@pr.gov.br
CICS
BMS
Basic Mapping Support 4/4
• O BMS permite também direcionar
mensagens e mapas para determinados
terminais ou usuários (Message Routing).
• O CICS, através da transação CMSG, que
se utiliza do BMS, provê uma forma
bastante simples de envio de mensagens
para outros terminais. Basta informar os
terminais de destino e o texto da mensagem
e opcionalmente podemos escolher que seja
em um horário determinado.
19/04/21 Celepar-GSO-Disop CICS-Introdução 59
colodi@pr.gov.br
CICS
Queueing
19/04/21 Celepar-GSO-Disop CICS-Introdução 60
colodi@pr.gov.br
CICS
DFHTDP
TASK
DCT Exec Cics
Readq/Writeq TD
INTRA-
EXTRA-
PARTITION
Batch Programs PARTITION
TD INTRAPARTITION 3/9
TD INTRAPARTITION 4/9
Program 5/9
Exec Cics
DFHTDP
Readq/Writeq TD Intrapartition
Dataset
TD EXTRAPARTITION 6/9
TD EXTRAPARTITION 7/9
TD EXTRAPARTITION 8/9
Program 9/9
Input ou Output
19/04/21 Celepar-GSO-Disop CICS-Introdução 70
colodi@pr.gov.br
CICS
5/7
DFHTSP
TASK
Exec Cics TS Records
Readq / AUX.TS
TS Records
Writeq TS Dataset
TS Records
Main / Aux
MAIN
Utilização de TS 6/7
CEDF
CECS
CECI
CEDF
Execution Diagnostic Facility 1/2
CEDF
Execution Diagnostic Facility 2/2
CEBR
Browses CICS queues
CECI
Command Level Interpreter
• Com a CECI podemos checar a sintaxe de
qualquer comando além de executá-los
realmente, sendo portanto muito útil durante
o período de testes de uma aplicação,
quando temos que fazer pequenas alterações
em arquivos para testar determinadas
condições no programa.
• A transação CECI é interativa, abrindo
painéis de opções conforme solicitação do
usuário.
19/04/21 Celepar-GSO-Disop CICS-Introdução 84
colodi@pr.gov.br
CICS
CECS
Command Level Syntax Check
• A CECS, como a CECI, é uma
interpretadora de comandos, porém
enquanto a CECI realmente executa o
comando, a CECS apenas checa a sua
sintaxe.
• Sua maior utilidade é no ambiente de
produção onde uma alteração em arquivos
pode gerar inúmeros problemas.
INTERVALO
Terminal Management
19/04/21 Celepar-GSO-Disop CICS-Introdução 87
colodi@pr.gov.br
CICS
TERMINAIS - Devices
• Dos vários tipos de terminais que o CICS
suporta, destacamos:
– Terminal de vídeo
– Impressoras
– Micros emulando terminais
– Leitora de cartões virtuais (CR / LP)
– Consoles MVS / VSE
Terminais VTAM
• Quando é terminal VTAM a definição é feita
pelo RDO, através da transação CEDA e
pode ser:
– Hard-coded: Terminal definido de forma estática.
– Autoinstall: Instalação automática e dinâmica de
terminais baseada em modelos pré-definidos.
Autoinstall
• Criado em 1986, com o CICS v1.7.
• Define-se os modelos para Terminais e
Typeterms.
• Para cada terminal que solicitar sessão com o
CICS o mecanismo de autoinstall seleciona o
primeiro modelo compatível e instala
dinamicamente em momento de logon.
19/04/21 Celepar-GSO-Disop CICS-Introdução 95
colodi@pr.gov.br
CICS
File Management
19/04/21 Celepar-GSO-Disop CICS-Introdução 97
colodi@pr.gov.br
CICS
FCT
FCP
FILEA FILEA
...
TASK
EIP
EXEC CICS
READ
FILE(‘FILEA’)
...
ESDS
KEY 5
3 5 8
KSDS
R4
R1 R2 R3
RRDS
Todas suportadas pelo CICS
19/04/21 Celepar-GSO-Disop CICS-Introdução 103
colodi@pr.gov.br
CICS
ESDS - Entry Sequenced DataSet
3 5 8
•Além da leitura direta, podemos também acessar
os registros de forma sequencial.
•Os registros podem ser incluídos em qualquer
posição, dependendo de sua chave.
•Podemos atualizar e deletar (excluir) os registros.
•A organização KSDS tem dois componentes:
Componente de Índice
Componente de Dados
19/04/21 Celepar-GSO-Disop CICS-Introdução 105
colodi@pr.gov.br
CICS
RRDS-Relative Record DataSet
R4
R1 R2 R3
Request
File B File B
File B buffers
Definição de Arquivos
• RDO
– CEDA DEFINE FILE
– CEDA DEFINE LSRPOOL
• MACRO
– Opcional para Arquivos VSAM e obrigatório para
arquivos BDAM.
• LSR é default, se não definirmos os pools de
buffers, o CICS fará a definição baseado em
informações do catálogo.
Job
CICS
Batch
• A família DB2: (DB2 for ESA, DB2 for VSE, DB2 for VM, DB2
for AS/400, DB2 for RISC System/6000, DB2 for OS/2, and DB2 for
UNIX)
• IMS - Esse banco é de estrutura hierárquica
(pai/filho) e o acesso aos dados é feito através de
comandos EXEC DLI a partir de transações CICS.
• Atualmente outros bancos de dados relacionais
também são suportados, tais como: Oracle, Sybase,
Ingres e Informix.
INTERVALO
CICS
File
Task A Task B
Update Rec6 Update Rec6
UPDATE
ABEND Reapply
...
Saved
Image
BACKOUT
LUW
TASK C
SOT FILE MOD. EOT
FILE MOD.
LUW COMPLETA
OU BACKED OUT C/C LOG =YES
...
Emergency Reestart
SYSTEM LOG
(journal)
CICS
Backout
Files, TS, TD, DB
START-UP OPTIONS
COLD
WARM
AUTO EMERGENCY
Start-up Options
• COLD:
– O CICS é inicializado como se tivesse sido recém
instalado. Todas as informações do system log
são ignoradas, portanto não existe nenhum tipo
de backout e todos os recursos do RDO são lidos
do arquivo DFHCSD e instalados na memória.
• AUTO:
– O CICS decide como será reinicializado,
dependendo de como terminou a última rodada.
Start-up Options
• WARM RESTART:
– A rodada anterior terminou de forma controlada
portanto não há backout a ser feito e os recursos
instalados via CEDA continuam disponíveis da
mesma forma que ficaram ao término da rodada
anterior.
• EMERGENCY RESTART:
– A rodada anterior terminou de forma não
controlada portanto será efetuado o processamento
de backout sendo que os recursos instalados via
CEDA permanecem disponíveis como na rodada
anterior.
19/04/21 Celepar-GSO-Disop CICS-Introdução 132
colodi@pr.gov.br
CICS
TERMINATION OPTIONS
NORMAL
IMMEDIATE
UNCONTROLLED
System Management
19/04/21 Celepar-GSO-Disop CICS-Introdução 135
colodi@pr.gov.br
CICS
Transactions
•C E M T - Master Terminal
•C E O T - Operator Terminal
A
•C E D B - Resource Derfinition Online
C
Transações de Administração
• CEMT (Master Terminal) - A transação mais
poderosa do CICS. Consulta e altera
variáveis do sistema e atributos de recursos.
Exemplo: Abre e fecha arquivos, desabilita
programas e transações, altera status de
terminais, tira o CICS do ar e muito mais.
Deve portanto ser utilizada com bastante
critério.
19/04/21 Celepar-GSO-Disop CICS-Introdução 137
colodi@pr.gov.br
CICS
Transações de Administração
• CEOT (Operator Terminal) - Consulta e altera
apenas status de terminais.
• CEDx (Resource Definition Online)
Composta por:
– CEDA - Define, altera, consulta e instala recursos.
– CEDB - Consulta e instala recursos.
– CEDC - Apenas consulta recursos definidos.
Determinação de Problemas
• O CICS está sujeito a falhas do tipo:
– Uma aplicação invadindo área de outras
– Loops
– Aplicações com Program Check
• Que tipo de auxílio podemos ter, além das
ferramentas para Command Level (CEDF),
para solucionar esses tipos de problemas?
Afinal o CICS precisa ter total
disponibilidade e por isso as falhas tem que
ser corrigidas no menor tempo possível.
19/04/21 Celepar-GSO-Disop CICS-Introdução 141
colodi@pr.gov.br
CICS
Medições e Ajustes
• As estatísticas que o CICS fornece são uma
ferramenta importante para análise do
ambiente e otimização de sua performance.
• A extração das estatísticas pode ser
solicitada em intervalos regulares ou a
qualquer momento desejado, a fim de
verificar como se encontra o sistema em
determinado instante.
19/04/21 Celepar-GSO-Disop CICS-Introdução 146
colodi@pr.gov.br
CICS
Medições e Ajustes
• Destaque para os seguintes tópicos:
INTERVALO
Communication
19/04/21 Celepar-GSO-Disop CICS-Introdução 150
colodi@pr.gov.br
CICS
Interconnected System
CICS/ESA CICS CICS
CICS
CICS/VSE /400 /6000 (Não IBM)
CICS for
OS/2
CICS for
OS/2 Client OS/2 OS/2 Client
Comunicações
• O CICS é um produto muito “sociável”, pois
consegue conversar com quaisquer outros CICS
da família e também com outros produtos que
conversam utilizando os protocolos de
comunicação suportados.
• Além disso, o CICS conta também com estrutura
Client/Server, ou seja, podemos acessar serviços
do CICS/ESA a partir de um micro onde estamos
trabalhando com Windows, por exemplo.
Tipos de Comunicações
Transação A
Read Update Request Mirror
File(MASTER)
Program
PREÇOS Read Update Reply MASTER
File(PREÇOS)
Transação A
Transaction Routing
• Uma transação iniciada em um CICS na verdade é
totalmente processada em outros CICS interligados.
• Desta forma, podemos fazer um balanceamento de
carga entre diversos CICS, sem que o usuário
perceba o que está ocorrendo.
• Possibilita também uma redução do tráfego na rede,
já que os programas podem ser processados onde os
dados residem, evitando a sua transmissão.
COMMAREA
(Data)
Return
PREÇOS COMMAREA MASTER
Communications (Data)
Área
D P L options CICS/6000
CICS OS/2
CICS/6000 CICS/400
CICS OS/2 CICS/ESA 3.3
CICS/VSE 2.2
CICS/400
CICS/ESA 3.3 CICS/MVS
CICS/VSE 2.2 CICS/VSE 2.1
CICS/ESA 3.1
CICS/ESA 3.2
DISTRIBUTED
PROGRAM
LINK
FUNCTION
SHIPPING
ISC
TRANSACTION
DISTRIBUTED ROUTING
TRANSACTION
PROCESSING
CICS OS/2
Server __
__
__
Dos Client
--- CICS/400
CICS
CICS
19/04/21 Celepar-GSO-Disop CICS-Introdução 179
colodi@pr.gov.br
CICS
OBRIGADO
OBRIGADO