One%20Two%20Three%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Four%20Five%20... - PowerPoint PPT Presentation

About This Presentation
Title:

One%20Two%20Three%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Four%20Five%20...

Description:

Title: C.I.C.S Customer Information Control System Subject: Introdu o ao CICS Author: colodi_at_pr.gov.br Keywords: cics Last modified by: Pedro Colodi – PowerPoint PPT presentation

Number of Views:369
Avg rating:3.0/5.0
Slides: 184
Provided by: colodip
Category:

less

Transcript and Presenter's Notes

Title: One%20Two%20Three%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Four%20Five%20...


1
One Two Three
Four Five ...
  • 6

INTRODUÇÃO AO CICS
  • C I C S

2
  • 6
  • C I C S

3
Sumá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
  • Unidade
  • 1
  • Introduction to CICS

5
C.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.

6
Transaçã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

7
Processamento 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.

8
Transaction 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.

9
OLTPOnLine 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

10
A 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
11
CICS
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
12
A 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

13
A 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

14
3/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
15
A 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.

16
CICS
  • Unidade
  • 2
  • Transaction Flow

17
Conceito 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

18
Conceito 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.

19
Layout 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.

20
Layout 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.

21
Layout 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.

22
CICS
  • NUCLEUS

TCP
TDP
  • Vtam

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
  • DSA

23
Execuçã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.

24
CICS
  • NUCLEUS

TCP
TDP
  • Vtam

SCP
EIP
DCT
TCT
DISPAT.
TSP
CSA
FCP
BMS
PCP
TRP
FCT
ICP
PCT
PPT
WORKING STORAGE
T C A
  • TRN1

APLICATION PROGRAM
WORKING STORAGE
T C A
  • TRN1
  • DSA

25
Task 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

26
Terminal 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
27
Administaçã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.

28
Administaçã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, ...

29
Administaçã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.

30
Administaçã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.

31
S 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

32
Macro 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)

33
Macros 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.

34
RDO - 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.

35
Transaçã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.

36
Grupo 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.

37
O 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.

38
O 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

39
CICS
I N T E R V A L O
40
CICS
  • Unidade
  • 3
  • Programming

41
Command 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.

42
Command 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.

43
CICS 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 - ........

44
Comando 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.

45
Exemplo
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

46
Montagem 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.

47
Montagem de um programa
CICS
FONTE
REL.
CICS TRANSLATOR
COMPILADOR
REL.
LOAD MODULE
LINK EDIT
48
Condiçõ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.

49
Funçõ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.

50
LINK
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.

51
CICS
PROG1 MOVE ... MOVE ... LINK PROG2 MOVE
... RETURN
PROG2 MOVE ... MOVE ... MOVE ... RETURN
52
XCTL
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.

53
CICS
PROG1 MOVE ... MOVE ... XCTL PROG2 MOVE
... RETURN
PROG2 MOVE ... MOVE ... RETURN MOVE
... RETURN
54
Ní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.

55
CICS
Níveis de Programas
  • CICS
  • Nivel 0
  • PROG1
  • Nivel 1

LINK PROGRAM(PROG2)
RETURN
  • PROG2
  • PROG3
  • Nivel 2

XCTL PROGRAM(PROG3)
RETURN
LINK PROGRAM(PROG4)
RETURN
  • PROG4
  • Nivel 3

. . . . RETURN
56
CICS
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.

57
CICS
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).

58
B 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.

59
B 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.

60
B 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.

61
B 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.

62
CICS
  • Unidade
  • 4
  • Queueing

63
CICS
  • TD
  • TS
  • x
  • 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)

64
TRANSIENT 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

65
CICS
  • CICS

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).
66
TD 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.

67
TD 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.

68
CICS
Program
5/9
Exec Cics Readq/Writeq TD
DFHTDP
Intrapartition Dataset
DCT
Destid PUT GET
69
TD 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.

70
TD 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.

71
TD 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).

72
CICS
Program
9/9
Exec Cics Readq/Writeq TD
Batch
DFHTDP
DCT
Destid Dataset Name
Input ou Output
73
TEMPORARY 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.

74
TEMPORARY 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.

75
TEMPORARY 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.

76
TEMPORARY 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.

77
CICS
5/7
DFHTSP
TASK
AUX.TS Dataset
Exec Cics Readq / Writeq TS Main / Aux
TS Records
TS Records
TS Records
MAIN
  • CICS

78
Utilizaçã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.

79
Para 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.

80
  • TS
  • TD
  • x

TRANSIENT 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
81
CICS
  • Unidade
  • 5
  • Command Level Tools

82
CICS
FERRAMENTAS AUXILIARES
CEBR
CEDF
CECS
C E C I
83
C 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.

84
C 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.

85
C 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.

86
C 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.

87
C 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.

88
CICS
I N T E R V A L O
89
CICS
  • Unidade
  • 6
  • Terminal Management

90
TERMINAIS - 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

91
TERMINAIS - 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.

92
TERMINAIS - 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.

93
TERMINAIS - 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.

94
TERMINAIS - 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.

95
TERMINAIS - 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.

96
TERMINAIS - 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.

97
TERMINAIS - 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.

98
TERMINAIS - 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

99
CICS
  • Unidade
  • 7
  • File Management

100
Gerenciamento 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.

101
Gerenciamento 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.

102
CICS
Operação de leitura de um VSAM
FILEA
F C T
FCP
FILEA
. . .
TASK
EIP
EXEC CICS READ FILE(FILEA) . . .
103
Gerenciamento 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.

104
Gerenciamento 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.

105
CICS
VSAM - Estruturas de Dados
ESDS
KEY 5
3
5
8
KSDS
R 4
R 1
R 2
R 3
RRDS
Todas suportadas pelo CICS
106
CICS
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.

107
CICS
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

108
CICS
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.

109
VSAM 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.

110
VSAM 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.

111
VSAM Buffering - NSRNon-Shared Resources 3/3
CICS
Request File A
File A
File A buffers
Request File B
File B
File B buffers
112
VSAM 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.

113
VSAM Buffering - LSRLocal-Shared Resources 2/2
CICS
Request File A
File A
Request File B
Buffer Pool
File B
114
Definiçã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.

115
CICS
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.
116
IMS 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.

117
IMS 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.

118
CICS
I N T E R V A L O
119
CICS
  • Unidade
  • 8
  • Data Integrity and Recovery

120
CICS
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.
121
CICS
Controle Exclusivo 1/3
Task A
Task B
Update Rec6
Update Rec6
File A
Rec5
Rec6
Rec7
122
Controle 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

123
Controle 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.

124
CICS
Dinamic Transaction Backout ( DTB ) 1/3
TASK A
File Work Área
Save Image
READ UPDATE UPDATE ABEND . . .
Reapply Saved Image
125
Dinamic 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.

126
Dinamic 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.

127
L 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.

128
CICS
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.
129
CICS
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
130
System 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.

131
CICS
Emergency Reestart
SYSTEM LOG (journal)
C I C S
Backout Files, TS, TD, DB
132
CICS
START-UP OPTIONS
COLD
WARM
AUTO
EMERGENCY
133
Start-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.

134
Start-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.

135
CICS
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
136
Termination 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.

137
CICS
  • Unidade
  • 9
  • System Management

138
CICS
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
139
Transaçõ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.

140
Transaçõ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.

141
CICS
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.
142
CICS
Determinação de Problemas
143
Determinaçã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.

144
Ferramentas 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.

145
Ferramentas 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

146
Ferramentas 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.

147
Ferramentas 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)

148
Mediçõ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.

149
Mediçõ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 . . .

150
CICS 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.

151
CICS
I N T E R V A L O
152
CICS
  • Unidade
  • 10
  • Communication

153
CICS
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
154
Comunicaçõ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.

155
Tipos 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

156
CICS
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.

157
CICS
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.

158
Facilidades 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.

159
Facilidades 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.

160
Function 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
161
Function 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.

162
Transaction Routing
CICS
CICS 1
CICS 2
Inicío da Transação A
Transação A
163
Transaction 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.

164
Distributed 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
165
Distributed 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.

166
Distributed Transaction P
Write a Comment
User Comments (0)
About PowerShow.com