Title: One%20Two%20Three%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Four%20Five%20...
1One Two Three
Four Five ...
INTRODUÇÃO AO CICS
2 3Sumário
- 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
4 5C.I.C.SCustomer Information Control System
CICS
- 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.
6Transação
CICS
- 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
7Processamento da Transação(Saque de dinheiro)
CICS
- 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.
8Transaction Manager
CICS
- High Availability
- Fast and Consistent Response Time
- End-to-End Integrity
- Repetitive
- Low Cost / Transaction
- Nosso gerenciador precisa ter grande
disponibilidade, funcionando 24 h por dia. Deve
ser rápido e consistente, garantindo integridade.
Por ter um grande volume deve ter um baixo custo
por transação.
9OLTPOnLine Transaction Processing
CICS
- O usuário solicita a execução do serviço e
aguarda seu processamento, recebendo a
confirmação do sucesso ou não da operação. - Potencialmente muitos usuários, muitas transações
- Diversas localidades, mesmo tipo de transação
- Mesma base de dados
- Compartilhamento e Integridade dos dados
10A função essencial da aplicação é efetuar o
serviço solicitado pelo usuário.A parte de
gerenciamento dos dados, segurança de acesso,
integridade, recuperação de falhas, .....? Quem
deve fazer?
CICS
Connectivity
Security
Business Logic
Logging
Multithreading
Exception Handling
APLICATION
Queue Management
Locking
Recovery
Time Control
Communication
Performance
Scheduling
Administration
OPERATING SYSTEM
HARDWARE
11CICS
APLICATIONS (Business Logic)
Security Exception Handling Naming Perfo
rmance Locking Connectivity Logging Mult
ithreading Scheduling Time Control Recovery
Authorization End-to-End Integrity Administr
ation
C I C S Aplicaion Server
COMUNICATIONS
DB MANAGER
OPERATING SYSTEM
HARDWARE
12A família CICS 1/4
CICS
- Hoje a IBM já dispõe de CICS para todas as suas
plataformas - ES/9000 - MVS CICS/ESA, CICS/MVS
- ES/9000 - VSE CICS/VSE
- RISC/6000 - AIX CICS/6000
- AS/400 - OS/400 CICS/400
- PWS - OS/2 CICS for OS/2
13A família CICS 2/4
CICS
- CICS para Open System (ex. HP-Unix)
- Todos podem conversar entre si
- Uma aplicação desenhada para uma plataforma
funciona em outra (mesma API) - CICS Clients Disponibilizam o acesso à sistemas
servidores (CICS Servers). - DOS
- Microsoft WINDOWS
- OS/2
- MACINTOSH
143/4
CICS
APLICATIONS
TRANSACTION MANAGER
C I C S Aplicaion Server
OPERATING SYSTEM
AIX
OS/400
VSE
MVS/ESA
OS/2
HARDWARE
PWS
RISC/6000
AS/400
ES/9000
15A família CICS 4/4
CICS
- Dos 500 da Fortune (Publicação que engloba as
maiores empresas do mundo), 90 deles utilizam
CICS. - 50.000 licenças de CICS no mundo.
- 300.000 programadores CICS no mundo.
- Utilizado em mais de 90 países, e geralmente de
forma vital para as empresas. - Software Houses oferecem inúmeros pacotes para
todas as plataformas.
16CICS
17Conceito Transação x Task 1/2
CICS
- Transação
- Solicitação para realização de um serviço
- Ex. Verificação de estoque a partir de um
terminal - 1 a 4 caracteres
- Que deve ser incluído numa tabela do CICS,
chamada PPT (Program Control Table). - Tipicamente entrada pelo terminal
18Conceito Transação x Task 2/2
CICS
- Task
- Unidade de trabalho do CICS
- É comum chamarmos de Task a execução de uma
transação. - 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.
19Layout da Memória do CICS 1/3(Ambiente MVS)
CICS
- MVS - unidades chamadas Address Space
- Addres Space do CICS
- Uma parte ocupada pelo núcleo do CICS (módulos de
gerenciamento e tabelas) - Outra parte é chamada DSA (Dynamic Storage Área).
Nessa área são carregados os programas da
aplicação, as áreas de trabalho e os blocos de
controle utilizados pela task.
20Layout da Memória do CICS 2/3 (Ambiente MVS)
CICS
- Núcleo do CICS
- Entre os módulos de controle podemos citar alguns
bastante importantes - Módulos que gerenciam o mecanismo de DISPATCHER
do CICS e que gerenciam a execução concorrente de
tasks. - DFHPCP - Program Control Program, controla a
carga e a execução dos programas de aplicação. - DFHSCP - Storage Control Program, controla a
alocação de memória.
21Layout da Memória do CICS 3/3 (Ambiente MVS)
CICS
- Na DSA temos um bloco de controle chamado TCA
(Task Control Área) - Criada no momento em que a transação é iniciada e
eliminada ao término de sua execução. - Contém informações importantes, usadas pelo CICS
para controlar a execução da task. - A partir do CICS 3.1 (DSA e EDSA).
- Hoje (CICS 4.1) tem 8 DSAs diferentes, onde o
CICS isola o processamento de funções distintas,
aumentando sua integridade e estabilidade.
22CICS
TCP
TDP
SCP
EIP
DCT
TCT
DISPAT.
TSP
CSA
FCP
BMS
PCP
TRP
FCT
ICP
PCT
PPT
T C A
TIOA
FIOA
TS STORAGE
TD STORAGE
USER STORAGE
APLICATION PROGRAM
23Execução concorrente
CICS
- 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.
24CICS
TCP
TDP
SCP
EIP
DCT
TCT
DISPAT.
TSP
CSA
FCP
BMS
PCP
TRP
FCT
ICP
PCT
PPT
WORKING STORAGE
T C A
APLICATION PROGRAM
WORKING STORAGE
T C A
25Task Flow
CICS
- 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
26Terminal Control
Task Control
Program Control
User Program
Storage Control
File Control
Init Task
Validate
Req.Stor.
Get Stor
Sch. task
Disp.task
LoadPgm
Req.Rec
Wait
Req.Read
Req Área
Get Stor
Rec Read
Wait
PrepOut
SchWrite
Req.Send
Term.task
TermTran
Return
FreeStor
Write
27Administação de Recursos 1/4
CICS
- O CICS administra seus recursos e de seus
usuários através de suas tabelas de recursos. - DFHSIT - (System Initialization Table)
- Parâmetros para controlar a inicialização e a
execução do CICS. - DFHTCT - (Terminal Control Table)
- Onde deve estar cada definição de terminal da
rede que o CICS reconhecerá. Nessas definições
informamos, nome, características e método de
acesso.
28Administação de Recursos 2/4
CICS
- DFHPCT - (Program Control Table)
- Onde definimos cada transação, o nome do programa
que a transação executa, a prioridade, ... - DFHPPT - (Processing Program Table)
- Onde definimos cada programa e suas
características tais como a linguagem na qual foi
desenvolvido, opções de residência na memória, ...
29Administação de Recursos 3/4
CICS
- DFHFCT - (File Control Table)
- Onde definimos os arquivos que o CICS reconhecerá
bem como suas características, quais operações
serão permitidas, ... - DFHDCT - (Destinationn Control Table)
- Onde definimos as filas de Transient Data.
30Administação de Recursos 4/4
CICS
- DFHTST - (Temporary Storage Table)
- Onde opcionalmente definimos as filas de TS.
- DFHPLT - (Program List Table)
- Onde definimos os programas que serão executados
automaticamente durante a inicialização e o
término do CICS.
31S I T
CICS
- DFHSIT TYPECSECT,
- AIEXITDFHZATDC, AUTOINSTALL USER PROG.NAME
(.CEL) - APPLIDCEL3CIC9, VTAM APPL IDENTIFIER
- DATFORMDDMMYY, (MMDDYY) CSA DATE FORMAT
- DSALIM7M, (5M)UPPER LIMIT OF DSA BELOW
16MB - EDSALIM90M, (20M) UPPER LIMIT DSA ABOVE
16MB - GMTRANCSGM, INITIAL TRANSACTION
- GRPLISTDFHLIST, LIST NAME OF CSD GROUPS FOR
STARTUP - MXT60, (5) MAXIMUM NUMBER OF TASKS
IN CICS - SUFFIXA4, SUFFIX OF THIS SIT
- TCTA4, TERMINAL CONTROL TABLE
OPTION/SUF - END DFHSITBA
32Macro x RDO
CICS
- 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)
33Macros Assembler
CICS
- 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.
34RDO - Resource Definition Online
CICS
- Este método consiste em definir e validar os
recursos em memória dinamicamente, sem ter que
reciclar o CICS. Esse mecanismo surgiu com o
CICS v1.6 em 1983 e evoluiu bastante até hoje. - Esse processo e feito através da transação CEDA,
que possui help e trabalha de forma interativa.
35Transação CEDA
CICS
- 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.
36Grupo de Recursos
CICS
- 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.
37O que podemos definir com RDO?
CICS
- Quando foi criado no CICS v1.6 1983, foi
possibilitada a definição de Transações,
Programas e mapsets (telas). - Em 1986, com a vinda da versão 1.7 tivemos
implementada a facilidade de definir terminais
VTAM. - Finalmente em 1989, com o advento do CICS v3.1.1
chegou a possibilidade de definição de arquivos
Vsam.
38O que devemos definir com Macro?
CICS
- Todas as outras tabelas (DCT, PLT,...)
- TCT para terminais não Vtam
- 000400 PRINT NOGEN
- 000500 DFHTCT TYPEINITIAL,ACCMETH(VTAM,
NONVTAM),SUFFIXA4 - 000700 DEFINICAO PARA TERMINAIS
SEQUENCIAIS - 001600 DEFINICAO P/ TERMINAL
SEQUENCIAL 1 - 001700 DFHTCT TYPESDSCI,DEVICE3505,DSC
NAMEENTSEQ01,BLKSIZE80, - 001800 RECFMF
- 001900 DFHTCT TYPESDSCI,DEVICE3211,DSC
NAMESAISEQ01 - 002000 DFHTCT TYPELINE,INAREAL132,ISAD
SCNENTSEQ01,ACCMETHBSAM, - 002100 OSADSCNSAISEQ01,TRMTYPECR
LP - 002200 DFHTCT TYPETERMINAL,TRMIDNTS001
,TCTUAL80, - 002300 TRMSTAT(RECEIVE),NETNAMES
001 - 006300 DFHTCT TYPEFINAL
- 006400 END DFHTCTBA
39CICS
I N T E R V A L O
40CICS
41Command Level Interface 1/2
CICS
- Chamamos de Command Level Interface a forma de
programar sob o CICS, é a API do CICS. - O Command Level surgiu em 1977, com o CICS v1.3.
Antes dessa data era necessário utilizar macros
assembler para programar sob CICS, procedimento
bastante trabalhoso se comparado com o atual.
42Command Level Interface 2/2
CICS
- Na execução desses comandos uma interface (EIP)
faz a edição das solicitações, passando o
controle para os módulos responsáveis pela
execução das mesmas. - Para todo comando a interface devolve um retorno
indicando se a função foi ou não bem sucedida, e
em caso negativo, qual o tipo de problema que
ocorreu.
43CICS Services
CICS
- 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 - ........
44Comando CICS - formato
CICS
- EXEC CICS SEND FROM(AREA) LENGTH(6) END-EXEC
- keywords option option delimiter
- function argument argument
- O CICS suporta as linguagens COBOL, ASSEMBLER,
PL/I. - A partir da v3.1.1 podemos também programar em C.
- Obs END-EXEC só para Cobol.
45Exemplo
CICS
- 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
46Montagem de um programa
CICS
- 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.
47Montagem de um programa
CICS
FONTE
REL.
CICS TRANSLATOR
COMPILADOR
REL.
LOAD MODULE
LINK EDIT
48Condições de exceção
CICS
- 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. - EXEC CICS READ (FILEA) RESP(RCQVEIO)
- IF RCQVEIO DFHRESP(COND) THEN.....
- Aqui o programador controla os acontecimentos
através dos return codes após cada comando
executado.
49Funções de controle de programas LINK / XCTL/
LOAD
CICS
- Quando inicia-se uma transação, o programa por
ela indicado é carregado em memória e começa a
ser executado. - Nada impede que a task execute outros programas
antes de seu término e para controlar a carga e a
passagem de controle de um program para outro
utilizamos essas funções.
50LINK
CICS
- 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.
51CICS
PROG1 MOVE ... MOVE ... LINK PROG2 MOVE
... RETURN
PROG2 MOVE ... MOVE ... MOVE ... RETURN
52XCTL
CICS
- 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.
53CICS
PROG1 MOVE ... MOVE ... XCTL PROG2 MOVE
... RETURN
PROG2 MOVE ... MOVE ... RETURN MOVE
... RETURN
54Níveis de programas
CICS
- 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.
55CICS
Níveis de Programas
LINK PROGRAM(PROG2)
RETURN
XCTL PROGRAM(PROG3)
RETURN
LINK PROGRAM(PROG4)
RETURN
. . . . RETURN
56CICS
LOAD
PROG1 MOVE ... MOVE ... LOAD PROGRAM(TBL1). .
. MOVE ... RETURN
TBL1 SP25.00 PR16.00 RJ14.00 BA31,80
- O comando LOAD (exec cics load) é utilizado
- para solicitar ao CICS, a carga de um programa,
- tabela ou mapset na memória.
- Muito usado para trabalhar com tabelas
codificadas - em assembler, carregadas e usadas por muitas
transações.
57CICS
START - Task Control
EXE CICS START TRANSID(TRN1) TERMID(TER1)
FROM(W-AREA) TIME(143000) END-EXEC
- Iniciar automaticamente uma transação,
imediatamente - ou num horário determinado, passando dados ou não.
- Esse mecanismo de start é chamado de ATI
- (Automatic Transaction Initiation).
58B M SBasic Mapping Support 1/4
CICS
- 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.
59B M SBasic Mapping Support 2 /4
CICS
- 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.
60B M SBasic Mapping Support 3/4
CICS
- 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 pfs.
61B M SBasic Mapping Support 4/4
CICS
- 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.
62CICS
63CICS
- O cics fornece uma facilidade para armazenar
dados que possuem características transientes ou
temporárias, conhecida como QUEUEING ou FILAS. - Esses dados podem ser criados por uma transação
para uso próprio imediato ou posterior, ou ainda
para utilização por outras transações. - Existem dois tipos de filas
- Transient Data (TD)
- Temporary Storage (TS)
64TRANSIENT DATA ( TD ) 1/9
CICS
- Filas de TD são identificadas por nomes de 4
caracteres que devem ser definidos numa das
tabelas do CICS, chamada DCT (Destination Control
Table). Essa tabela é definida utilizando-se
macros assembler, devendo ser compilada e
linkeditada. - Filas TD tem como características a gravação e
leitura de dados exclusivamente sequencial, e são
divididas em dois grupos - TDs INTRAPARTITION
- TDs EXTRAPARTITION
65CICS
2/9
DFHTDP
TASK
DCT
Exec Cics Readq/Writeq TD
INTRA- PARTITION
EXTRA- PARTITION
Batch Programs
A task grava ou lê TDs através de Writeq TD e
Readq TD. O módulo DFHTDP consulta a definição da
fila na DCT para saber se é Intra (controlada
pelo CICS) ou Extra (arquivo externo).
66TD INTRAPARTITION 3/9
CICS
- São utilizados exclusivamente dentro do CICS.
- Todas as filas são armazenadas no mesmo arquivo
controlado pelo CICS Vsam Esds chamado DFHINTRA. - Os registros de cada fila podem ter tamanho fixo
ou variável. - A gravação e recuperação dos dados é sempre
sequencial.
67TD INTRAPARTITION 4/9
CICS
- Após a leitura dos registros a fila fica vazia,
pronta para uma nova gravação de dados. - Em TDs Intrapartition a leitura é destrutiva, as
filas tem característica reutilizável. - As TDs Intra tem um mecanismo bastante útil,
chamado Triggering. Ao definir a fila na DCT
podemos informar um número de Trigger level, que
quando atingido, numa gravação, uma transação é
automaticamente iniciada através do ATI
(Automatic Transaction Initiation) do CICS.
68CICS
Program
5/9
Exec Cics Readq/Writeq TD
DFHTDP
Intrapartition Dataset
DCT
Destid PUT GET
69TD EXTRAPARTITION 6/9
CICS
- É a forma que o CICS utiliza para suporte de
arquivos sequenciais. (SAM - Sequential Access
Method). - Cada fila de TD Extrapartition é amarrada a um
arquivo seqüencial físico. - Cada TD Extra pode ser definica na DCT como Input
ou Output, nunca ambos.
70TD EXTRAPARTITION 7/9
CICS
- O arquivo SAM pode ser gerado pelo CICS e
utilizado por programas Batch e vice-versa. - Os registros dos arquivos podem ser de tamanho
fixo ou variável, blocados ou não. - Como cada fila de TD Extra corresponde a um
arquivo, este deve ser aberto para poder ser
utilizado. Podemos solicitar a abertura no
startup do CICS ou na primeira referência.
71TD EXTRAPARTITION 8/9
CICS
- O usos mais comuns das TDs são
- Armazenamento e recuperação de dados pelas
transações - Disparo automático de tasks via mecanismo de
gatilho. - O próprio CICS é um grande usuário de TD,
principalmente para gravação de mensagens
reportando tudo o que ocorre com o sistema
durante a rodada (Sign-on/Sign-off, Error/Abends,
Statistics).
72CICS
Program
9/9
Exec Cics Readq/Writeq TD
Batch
DFHTDP
DCT
Destid Dataset Name
Input ou Output
73TEMPORARY STORAGE (TS) 1/7
CICS
- Filas de TS tem seus nomes com até 8 caracteres.
- A criação desses nomes é dinâmica, não precisa
definí-los em tabela. - Os dados podem ser recuperados sequencial ou
diretamente. - Os registros, chamados de ÍTENS, podem ter
tamanho fixo ou variável.
74TEMPORARY STORAGE (TS) 2/7
CICS
- As filas ficam disponíveis até serem
explicitamente excluídas. - Existem dois tipos de filas
- MAIN - filas gravadas em memória.
- AUX - filas gravadas em disco.
75TEMPORARY STORAGE (TS) 3/7
CICS
- A task solicita a gravação / leitura de filas TS
através do comando WRITEQ / READQ. - No próprio comando especificamos se desejamos que
a fila seja criada em memória (MAIN) ou em disco
(AUX). - Os registros de TS são chamados de ÍTENS.
76TEMPORARY STORAGE (TS) 4/7
CICS
- As filas em memória tem a vantagem da rapidez,
porém se forem muito extensas podem causar
problemas de falta de memória. - As filas de disco tem como destino um arquivo
Vsam Esds chamado DFHTEMP e são bastante úteis
quando se pretende manter as filas em caso de
queda no CICS. Também são muito recomendadas para
filas com muitos ítens.
77CICS
5/7
DFHTSP
TASK
AUX.TS Dataset
Exec Cics Readq / Writeq TS Main / Aux
TS Records
TS Records
TS Records
MAIN
78Utilização de TS 6/7
CICS
- Além das nossas aplicações, o próprio CICS
utiliza TS para várias funções, entre elas - Armazenar telas de BMS (paginação).
- Guardar telas do EDF (monitoração de transações)
- Passar dados para uma transação iniciada via
comando START.
79Para uma boa utilização de TS... 7/7
CICS
- Sempre excluir as filas após a utilização
(DeleteQ), para não ter problemas com memória ou
falta de espaço no arquivo DFHTEMP. - Padronizar o uso dos nomes das filas. Exemplo
Endereço do terminal nas 4 primeiras posições e
nome da transação nas quatro últimas.
80TRANSIENT DATA
TEMPORARY STORAGE
STATIC DEFINITIONS (DCT)
DYNAMIC DEFINITIONS
VSAM-ESDS FILE (INTRA)
VSAM-ESDS FILE (AUX)
SEQUENTIAL RETRIEVE
SEQ/RANDOM RETRIEVE
SAM FILES (EXTRA)
MAIN STORAGE USE
TRIGGERING (ATI)
NO ATI SUPPRT
81CICS
82CICS
FERRAMENTAS AUXILIARES
CEBR
CEDF
CECS
C E C I
83C E D FExecution Diagnostic Facility 1/2
CICS
- É uma transação utilizada para depurar probramas
escritos em Command Level. - A cada comando CICS emitido o programa é
suspenso, e através do CEDF podemos verificar sua
Working-Storage, inclusive podendo alterá-la. - O CEDF mostra a execução de cada comando e
permite a alteração de response codes para teste
da aplicação.
84C E D FExecution Diagnostic Facility 2/2
CICS
- Podemos acompanhar a execução do programa a
partir de determinado comando, que solicitamos
através de um painel (Stop Conditions) do CEDF. - O CEDF permite também acompanhar a execução de um
programa através de outro terminal. - Por suas qualidades esta transação é considerada
a mais valiosa para quem programa em CICS.
85C E B RBrowses CICS queues
CICS
- Essa transação possibilita consultarmos todo o
conteúdo de qualquer fila de TS (main / aux) e
TD. - Permite também localizarmos uma cadeia de dados
dentro de uma fila de TS ou TD, além de
possibilitar a deleção dos dados.
86C E C ICommand Level Interpreter
CICS
- 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.
87C E C SCommand Level Syntax Check
CICS
- 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.
88CICS
I N T E R V A L O
89CICS
90TERMINAIS - Devices
CICS
- 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
91TERMINAIS - Método de acesso 1/2
CICS
- O principal método de acesso atualmente é o VTAM
(Virtual Telecommunications Access Method), para
MVS, VSE e VM. - O VTAM é o proprietário dos terminais e o CICS
uma aplicação definida dentro do VTAM. - Quando o usuário escolhe a aplicação CICS o VTAM
estabelece uma sessão de trabalho entre o
terminal e o CICS.
92TERMINAIS - Método de acesso 2/2
CICS
- O CICS tem que reconhecer o terminal que está
tentando estabelecer a sessão, caso contrário o
processo não terá sucesso. Para isso o terminal
deve ser definido dentro do CICS na tabela de
terminais. - Quando falamos de CICS OS/2 e CICS em
Workstations, são outras plataformas e outros
métodos de acesso diferentes do VTAM.
93TERMINAIS - Definições 1/6
CICS
- 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.
94TERMINAIS - Definições 2/6
CICS
- Terminais NÃO VTAM
- Se o terminal não é VTAM, por exemplo uma leitora
de cartões virtual, que é um terminal sequencial,
a definição deve ser feita através de macros
assembler criando a tabela DFHTCT, que deve ser
compilada, linkeditada e o CICS reciclado para
validar as mudanças.
95TERMINAIS - Definições 3/6
CICS
- Definição Hard-Coded 1/2
- Para definirmos um terminal VTAM através do RDO
devemos criar duas entidades diferentes
utilizando a transação CEDA. - DEFINE TERMINAL Define-se Termid (nome de 4
caracteres que o CICS utiliza), Netname (nome
real de 8 caracteres), e também qual o Typeterm
estará associado, para cada terminal que for
utilizado pelo CICS.
96TERMINAIS - Definições 4/6
CICS
- Definição Hard-Coded 2/2
- DEFINE TYPETERM Define-se as características
genéricas de um grupo de terminais como por
exemplo o tamanho de sua tela, se é colorida ou
não, se tem ou não tem User Área, ... - No momento da instalação na memória a associação
das duas definições gera uma entrada de terminal
conhecida como TCTTE - Terminal Control Table
Terminal Entry.
97TERMINAIS - Definições 5/6
CICS
- 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.
98TERMINAIS - Definições 6/6
CICS
- Terminais Não Vtam
- Para terminais não vtam temos que construir a
tabela DFHTCT através das macros correspondentes - DFHTCT TYPEINITIAL, ...
- DFHTCT TYPETEMINAL, ...
- .... ...
- DFHTCT TYPEFINAL
99CICS
100Gerenciamento de Arquivos 1/4
CICS
- Toda função solicitada ao CICS, por transações
desenvolvidas em Command Level passa por um
módulo chamado DFHEIP (Exec Interface Program),
que analisa a função e passa para o módulo
responsável.
101Gerenciamento de Arquivos 2/4
CICS
- Quando o comando é para manuseio de arquivos,
entra o DFHFCP (File Control Program). Este
módulo consulta a tabela de arquivos DFHFCT (File
Control Table) , verificando se o arquivo está
definido, suas características, tipo de operação
permitida, etc. Estando tudo OK o FCP pede ao
método de acesso para realizar a operação
desejada.
102CICS
Operação de leitura de um VSAM
FILEA
F C T
FCP
FILEA
. . .
TASK
EIP
EXEC CICS READ FILE(FILEA) . . .
103Gerenciamento de Arquivos 3/4
CICS
- No caso de operações envolvendo Banco de Dados,
os próprios gerenciadores dos bancos tem uma
interface com o CICS. Nesse caso o EIP e o FCP
não são solicitados.
104Gerenciamento de Arquivos 4/4
CICS
- VSAM X BDAM
- O CICS trabalha com dois métodos de acesso para
manuseio de arquivos - VSAM - Virtual Storage Access Method
- BDAM - Basic Direct Access Method
- O BDAM é um método de acesso antigo e
praticamente em desuso no mundo - Obs Para o CICS/6000 and CICS/400, file control
é feito por emulação de VSAM.
105CICS
VSAM - Estruturas de Dados
ESDS
KEY 5
3
5
8
KSDS
R 4
R 1
R 2
R 3
RRDS
Todas suportadas pelo CICS
106CICS
ESDS - Entry Sequenced DataSet
- Cada registro é identificado para recuperação
pelo - seu deslocamento em bytes a partir do início do
- arquivo (RBA-Relative Byte Address).
- Registros novos são adicionados após o último.
- Podem ser atualizados, mas sem mudar o tamanho
- Não existe deleção (exclusão) de registros.
107CICS
KSDS-Key Sequenced DataSet
KEY 5
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
108CICS
RRDS-Relative Record DataSet
R 4
R 1
R 2
R 3
- Consiste de um número de gavetas de tamanho
- fixo que são sequenciadas em ordem ascendente
- pelo número relativo do registro.
- Cada gaveta contém um registro ou estará vazia,
- aguardando o registro correspondente.
- Os registros podem ser acessados sequencialmente
- ou diretamente pelo seu número relativo.
- Podemos também excluir os registros.
109VSAM Buffering - NSRNon-Shared Resources 1/3
CICS
- Quando definimos um arquivo no CICS, podemos
indicar o número de buffers que desejamos que
sejam alocados na abertura do arquivo. - Esse mecanismo de alocação de buffers exclusivos
para determinado arquivo é chamado de
NSR-Non-Shared Resources, dessa forma o arquivo
sempre terá buffers disponíveis para a operação
de I/O.
110VSAM Buffering - NSRNon-Shared Resources 2/3
CICS
- Por outro lado quando o arquivo estiver aberto e
sem utilização teremos desperdício de área de
memória ocupada pelos buffers. - Se tivermos muitos arquivos, no momento em que
todos ou quase todos estiverm abertos estaremos
com muita memória alocada e provavelmente mal
exploradas. - Por isso indica-se NSR para arquivos com intensa
utilização, para ganho de performance.
111VSAM Buffering - NSRNon-Shared Resources 3/3
CICS
Request File A
File A
File A buffers
Request File B
File B
File B buffers
112VSAM Buffering - LSRLocal-Shared Resources 1/2
CICS
- Utilizamos esse conceito para construir pools de
buffers e atribuí-los para determinado conjunto
de arquivos, dependendo de suas características. - Temos com isso um uso mais eficiente da memória
porque os buffers são compartilhados. - Redução da quantidade de I/Os pois os dados
podem já estar carregados em algum buffer
(lookaside). - Isso leva a uma melhora da performance como um
todo.
113VSAM Buffering - LSRLocal-Shared Resources 2/2
CICS
Request File A
File A
Request File B
Buffer Pool
File B
114Definição de Arquivos
CICS
- 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.
115CICS
ALOCAÇÃO DINÂMICA
Job Batch
CICS
Os arquivos são alocados na abertura e
desalocados no fechamento. Basta então fechar o
arquivo no CICS e atualizá-lo em Batch,
aumentando assim a flexibilidade do
processamento, já que o CICS é um produto para
permanecer no ar 24 horas por dia.
116IMS x DB2 1/2
CICS
- O CICS suporta também os bancos de dados DB2 e
IMS. Os acessos aos bancos são feitos por
interfaces próprias dos mesmos. - DB2 - É um banco de dados de estrutura relacional
com dados armazenados em tabelas bi-dimensionais
compostas por linhas e colunas, que podem ser
comparadas a registros e campos de um arquivo,
respectivamente. Para solicitar serviços ao DB2 a
aplicação CICS emite comandos EXEC SQL que são
interpretados pela interface entre o CICS e o
DB2, chamada CICS ATTACHMENT FACILITY.
117IMS x DB2 2/2
CICS
- 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.
118CICS
I N T E R V A L O
119CICS
- Data Integrity and Recovery
120CICS
CICS File
Garantir que enquanto um usuário atualiza um
registro, outros não atualizam os mesmos dados
simultaneamente, o que provavelmente, resultaria
em perda de integridade.
121CICS
Controle Exclusivo 1/3
Task A
Task B
Update Rec6
Update Rec6
File A
Rec5
Rec6
Rec7
122Controle Exclusivo 2/3
CICS
- O VSAM e o CICS utilizam esse mecanismo para
evitar que ocorram atualizações simultâneas em
registros do mesmo Control Interval (CI). - Quando uma task pede a atualização de um
registro, todo o CI fica preso a essa task e só
é liberado quando a atualização for completada.
Enquanto isso não ocorre, as tasks que desejam
atualizar registros do mesmo CI ficam em Wait,
isto é, aguardando sua liberação
123Controle Exclusivo 3/3
CICS
- Se o arquivo for protegido (LOGYES na
definição), após a sua atualização o VSAM
normalmente libera o CI, mas o CICS prende o
registro atualizado à task até que a mesma
termine ou a Logical Unit of Work (LUW) seja
completada.
124CICS
Dinamic Transaction Backout ( DTB ) 1/3
TASK A
File Work Área
Save Image
READ UPDATE UPDATE ABEND . . .
Reapply Saved Image
125Dinamic Transaction Backout ( DTB ) 2/3
CICS
- Quando um arquivo é protegido (LOGYES na
definição), na ocorrência de uma falha na
execução da transação (Abend), o CICS desfaz as
alterações efetuadas voltando o arquivo à
situação em que estava anteriormente.
126Dinamic Transaction Backout ( DTB ) 3/3
CICS
- Quando ocorre a atualização do registro, o CICS
salva a imagem anterior (before image) em uma
área de memória chamada Dynamic Log. Se a task
for interrompida antes do seu término, o CICS
reaplica ao arquivo a imagem anterior a
atualização, voltando o registro ao estado em que
se encontrava. Em seguida, emite para o usuário
uma mensagem indicando que a task sofreu um abend
e que o backout foi bem sucedido.
127L U W - Lógical Unit of Work
CICS
- A LUW tem início quando a task requisita uma
atualização de um recurso protegido
(recuperável). Essa LUW termina quando a task for
finalizada ou então quando o programa solicitar
um ponto de sincronismo explícito, através do
comando EXEC CICS SYNCPOINT. - Quando a LUW é fechada, todas as alterações
feitas em recursos protegidos são efetivadas. - Enquanto a LUW não termina a task é chamada de
In-flight.
128CICS
System Failure
LUW
TASK A
SOT
EOT
FILE MOD.
BACKOUT
LUW
LUW
LUW
LUW
TASK B
SOT
SYNC.
SYNC.
EOT
SYNC.
FILE MOD.
FILE MOD.
FILE MOD.
FILE MOD.
BACKOUT
LUW
TASK C
SOT
EOT
FILE MOD.
FILE MOD.
129CICS
Transferência da Poupança para a Conta Corrente
TASK
UPDATE (ARQ.POUPANÇA) ( - R 300,00) UPDATE (ARQ
. C/C) ( R 300,00) LUW COMPLETA OU BACKED
OUT . . .
POUPANÇA
LOG YES
C/C
LOG YES
Obs Bancos de dados tem seus próprios mecanismos
de recuperação e integridade
130System Failure Backout
CICS
- Para falhas de tasks (abends), o CICS recupera
imagens anteriores dos recursos protegidos a
partir de áreas de memória chamadas Dynamic Logs.
- O CICS além de guardar imagens anteriores na
memória, as armazena no SYSTEM LOG. - Na reinicialização do CICS em EMERGENCY RESTART,
o SYSTEM LOG é lido do fim para o início e todas
as LUWs pendentes serão desfeitas (backout). - Quando termina a inicialização, o CICS estará na
mesma posição em que estava no momento da queda.
131CICS
Emergency Reestart
SYSTEM LOG (journal)
C I C S
Backout Files, TS, TD, DB
132CICS
START-UP OPTIONS
COLD
WARM
AUTO
EMERGENCY
133Start-up Options
CICS
- 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.
134Start-up Options
CICS
- 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.
135CICS
TERMINATION OPTIONS
N O R M A L
I M M E D I A T E
U N C O N T R O L L E D
136Termination Options
CICS
- SHUTDOWN NORMAL
- Todas as tasks In-flight são executadas até o
fim e a saída é controlada. - SHUTDOWN IMMEDIATE
- Todas as tasks In-flight são canceladas
portanto ocorre backout quando o sistema for
reinicializado. Apesar disso, é considerado como
saída controlada já que depende da vontade do
operador. - UNCONTROLLED
- Término inesperado da execução do CICS (falta de
energia, falha, abend, etc). Essa situação requer
backout na reinicialização.
137CICS
138CICS
Transactions
- C E M T - Master Terminal
- C E O T - Operator Terminal
- A
- C E D B - Resource Derfinition Online
- C
O CICS oferece vária ferramentas para
gerenciamento do sistema. Dentre elas destacamos
as transações
139Transações de Administração
CICS
- 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.
140Transações de Administração
CICS
- 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.
141CICS
Security
Até a versão 3.1.1, o CICS oferecia um mecanismo
próprio de segurança (interna), que era baseada
em chaves numéricas associadas às transações e
aos recursos
definidos, e de acordo com as chaves o usuário
tinha ou não acesso permitido. Como esse
mecanismo de segurança era pouco eficaz, a partir
do CICS v3.2.1 ele foi extinto e tornou-se
necessária a contratação de um gerenciador de
segurança externo como o Top Secret da CA, o RACF
da IBM ou outros existentes no mercado.
142CICS
Determinação de Problemas
143Determinação de Problemas
CICS
- 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.
144Ferramentas para Determinação de Problemas 1/4
CICS
- O CICS oferece algumas ferramentas
- DUMP
- Transaction Dump - Um pequeno Dump é fornecido
quando ocorre um abend de task. Nele o CICS
formata as principais áreas e blocos de controle
da transação que sofreu o abend. - System Dump - Dump de praticamente todas as áreas
e blocos de controle do CICS. Requer boa
experiência para ser analisado. Utilizado para
problemas como violações de memória e quedas de
CICS.
145Ferramentas para Determinação de Problemas 2/4
CICS
- TRACE
- É a gravação do caminho percorrido pelos
módulos de gerência e pelas tasks durante toda a
rodada, isto é, todas as operações que estão
sendo processadas no CICS. O trace fornece uma
visão das operações no momento do erro,
facilitando a determinação do problema. É muito
importante para resolução de loops. Existem os
seguintes tipos de TRACE
146Ferramentas para Determinação de Problemas 3/4
CICS
- Trace MAIN O trace é gravado em uma área de
memória pré-alocada. No momento da emissão de um
dump, ele é incluído em seu conteúdo. - Trace AUX Trace auxiliar semelhante ao Main
trace porém seu conteúdo é gravado em disco. Não
é necessário um dump para obter esse trace pois a
formatação é feita via batch através do programa
DFHTUP. - Trace MVS/GTF A partir da v3.1.1 existe a
possibilidade de obter o trace com o GTF do MVS.
147Ferramentas para Determinação de Problemas 4/4
CICS
- Messages and Codes Manual em papel e a opção
online (transação CMAC) a partir da v3.1.1 - IBM Support CAC - Centro de Atendimento ao
Cliente)
148Medições e Ajustes
CICS
- 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.
149Medições e Ajustes
CICS
- Destaque para os seguintes tópicos
- TASK - através das estatísticas, sabemos quantas
tasks foram processadas na rodada, qual foi o
pico de tasks atingido, ... - TRANSACTION - Podemos saber quantas vezes foi
processada cada transação do usuário, conhecendo
assim os sistemas mais utilizados, os pouco
utilizados, ... - PROGRAM - mostra quantas vezes cada programa foi
executado, seu fetch count (carga na memória),
... - FILE - quantas solicitações ocorreram para cada
arquivo, que tipos de operações foram realizadas,
... - TD/TS - informa o número total de solicitações,
contagem de waits por falta de buffers ou
memória, ... - E muito mais . . .
150CICS Monitor Facility
CICS
- Outra ferramenta disponível para medições e
ajustes é o Monitor Facility. O CICS coleta dados
como por exemplo do tempo total de processamento
da transação, quanto foi gasto de CPU, quanto foi
perdido aguardando operações de I/O, tempo gasto
em dispatch, ... - Normalmente os dados de Monitor Facility do CICS
são interpretados pelos monitores oferecidos no
mercado, já que são dados complexos para
verificarmos sem ferramentas de auxílio. - Pelos dados de monitor temos indicações de quais
sistemas podem estar impactando o CICS, gargalos,
contenções de I/O, ... - Através dos dados de monitor temos condições de
saber se os recursos estão sendo bem utilizdos
pelas transações ou não.
151CICS
I N T E R V A L O
152CICS
153CICS
Interconnected System
CICS/ESA CICS/VSE
CICS /400
CICS /6000
CICS (Não IBM)
CICS for OS/2
CICS for OS/2
OS/2 Client
OS/2 Client
Dos Client
Dos Client
Mac Client
Windows Client
Mac Client
Windows Client
154Comunicações
CICS
- 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.
155Tipos de Comunicações
CICS
- O CICS trabalha com duas formas de comunicação,
sendo que em ambas a interligação é feita através
da definição de conexões em cada CICS envolvido
no processo. - M R O
- I S C
156CICS
MRO - Multi-Region Operation CICS
CICS
- Trata-se da comunicação de um CICS com outros
CICS sob o mesmo sistema operacional. Portanto é
uma comunicação unicamente CICS-CICS. - O MRO utiliza dois mecanismos para efetivar a
comunicação - IRC - (Inter-Region Communication) - um CICS
conversa com outro através de SVCs. - XM - (Cross-Memory) - exclusivo do MVS, para
comunicação entre Address Spaces.
157CICS
CICS
CICS LU6.2(APPC)
LU6.1
ISC - Intersystem Communication
- Esse tipo de comunicação é realizado através do
VTAM, e possibilita a interligação de CICS sob o
mesmo sistema operacional ou sistemas
operacionais distintos. - Permite a comunicação entre CICS nas mais
diversas plataformas, e também interligar um CICS
com outros produtos que conversam através dos
protocolos de comunicação LU6.1 e principalmente
LU6.2 (APPC). - O ISC é a forma de comunicação mais flexível, já
que permite interligar diferentes plataformas e
produtos situados em qualquer localidade.
158Facilidades de Comunicação 1/2
CICS
- Através do MRO e do ISC temos
- FUNCTION SHIPPING (Navegação de função) - a
partir de um CICS podemos acessar dados em outros
CICS, de forma transparente para o programador e
para o usuário final. - TRANSACTION ROUTING (Roteamento de transação) - o
usuário conecta-se a um CICS, chama o código de
uma transação e esta é processada inteiramente em
outro CICS. Isso ocorre de forma transparente
para o programador e também para o usuário final.
159Facilidades de Comunicação 2/2
CICS
- DISTRIBUTED TRANSACTION PROCESSING (Processamento
distribuído de transação) - um processamento é
dividido em duas ou mais transações, cada uma
executando em um CICS distinto. O processo é
transparente para o usuário final, mas sua
programação é um tanto complexa. - DISTRIBUTED PROGRAM LINK (Link distribuído de
proramas) - através do comando EXEC CICS LINK,
podemos fazer chamadas a programas que serão
processados em outros CICS.
160Function Shipping
CICS
CICS 1
CICS 2
Transação A
Mirror Program
Request
Read Update File(MASTER) Read Update File(PREÇOS)
Reply
MASTER
PREÇOS
161Function Shipping
- A transação A, no CICS 1 pede a leitura do
arquivo MASTER, pertencente ao CICS2. Para
atender a solicitação uma transação espelho
(Mirror) é disparada no CICS2, que realiza a
leitura e devolve os dados ao CICS1. - Funcion Shipping suporta acesso remoto a
arquivos, filas de Temporary Storage (TS) e
Transient Data (TD). A integridade dos dados é
total. Se ocorrer um abend em um dos lados, o
outro é imediatamente informado para ocorrer o
sincronismo dos eventos.
162Transaction Routing
CICS
CICS 1
CICS 2
Inicío da Transação A
Transação A
163Transaction Routing
CICS
- 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.
164Distributed Transaction Processing
CICS
CICS 1
CICS 2
Synchornous
Transação B Exec Cics Receive Exec Cics Send
Transação A Exec Cics CONVERSE
Data
Data
MASTER
PREÇOS
165Distributed Transaction Processing 1/2
- O Distributed Transaction Processing é uma
facilidade de comunicação onde o processamento é
distribuído em duas ou mais transações, cada uma
processando em um CICS diferente porém de forma
síncrona. - Quando uma transação é iniciada pelo usuário no
CICS1, o programa solicita que seja iniciada uma
transação parceira n CICS2. As duas trabalham em
conjunto durante todo o processo.
166Distributed Transaction P