Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CICS
CICS
Customer
Information
Control
System
1
12/10/20
OLTP (on-line transaction procesing)
SISTEMA OPERATIVO
CICS
FICHEROS
USUARIO PROGRAMAS
Y BASES
DE DATOS
Pág: 2 12/10/20
Módulos del CICS
KC SC
Control de Tareas Control de Memoria
PC TC
Control de Programas Control de terminales
FC TD
Control de Ficheros Control datos transitorios
TS
Control memoria BMS, IC, DC
temporal
Pág: 3 12/10/20
Tablas del CICS
TCT PCT
Terminales Transacciones->Programas
PPT FCT
Programas Ficheros
DCT
Fichero datos transitorios
Pág: 4 12/10/20
Conversación
Conversacional:
1. Visualizar pantalla
2. Esperar respuesta
3. Recibir respuesta
4. Actualizar fichero
5. Visualizar un mensaje de O.K.
No conversacional:
Se realiza la tarea y el programa desaparece
Pág: 5 12/10/20
Pseudoconversacional
Transacción 1:
1. Visualizar pantalla
Transacción 2:
3. Recibir respuesta
4. Actualizar fichero
5. Visualizar un mensaje de O.K.
Pág: 6 12/10/20
Funcionamiento del CICS
TC PC
Librería
3
ACCT
Pág: 7 12/10/20
Funcionamiento del CICS
Librería
BMS PC
Menú
PROGRAMA
ACCT00
5 4
Pág: 8 12/10/20
Funcionamiento del CICS
Librería
BMS PC FC
Selección
Fichero
6 PROGRAMA
ACCT01
8 7
Pág: 9 12/10/20
Proceso de compilación
Informe
Traductor
Fuente
Traductor
Informe
Compilador
Fuente
traducido Compilador
Informe
Linkeditor
Objeto Linkeditor
Load
Pág: 10 12/10/20
Restricciones programas CICS
No se pude utilizar:
La INPUT-OUTPUT SECTION dentro de la
ENVIRONMENT DIVISION
La FILE SECTION dentro de la DATA DIVISION
Los verbos:
READ
WRITE
OPEN
CLOSE
ACCEPT
DISPLAY
TRACE
SORT
Etc.
Pág: 11 12/10/20
Formato comandos CICS
EXEC CICS Caracteres no
RECEIVE MAP(‘A’) imprimibles
END-EXEC
MOVE ‘ ‘ TO DFHEIV0
MOVE ‘A’ TO DFHC0070
CALL ‘DFHEI1’ USING DFHEIV0 DFHC0070
El traductor se
encarga de definir las
variables necesarias en
nuestro programa
Pág: 12 12/10/20
Ficheros soportados
DAM (Direct Access Method)
Pág: 13 12/10/20
Gestión de errores
EXEC CICS
HANDLE CONDITION
DUPREC(párrafo)
ERROR(párrafo)
END-EXEC
EXEC CICS
RECEIVE MAP(‘A’)
RESP(C-RESP)
END-EXEC
Pág: 14 12/10/20
Transferencia de control
Vía CALL
Tal y como se hacía en los programas “batch”
Vía LINK
Equivale a una PERFORM. El programa llamado se
ejecuta y al terminar se devuelve el control a la siguiente
instrucción
Vía XCTL
Equivale a un GOTO. El programa llamador se descarga
de la memoria y se ejecuta el programa llamado
Vía RETURN (opción TRANSID)
Sólo puede emitir un RETURN con opción TRANSID un
programa que devuelve control al CICS
Pág: 15 12/10/20
LINK
EXEC CICS
LINK
PROGRAM(‘nombre’)
[COMMAREA(identificador)]
[LENGTH(identificador)]
END-EXEC
Pág: 16 12/10/20
XCTL
EXEC CICS
XCTL
PROGRAM(‘nombre’)
[COMMAREA(identificador)]
[LENGTH(identificador)]
END-EXEC
Pág: 17 12/10/20
RETURN
EXEC CICS
RETURN
TRANSID(‘nombre’)
[COMMAREA(identificador)]
[LENGTH(identificador)]
END-EXEC
Pág: 18 12/10/20
START
EXEC CICS
START
TRANSID(‘nombre’)
[COMMAREA(identificador)]
[LENGTH(identificador)]
[INTERVAL(hhmmss) COMP-3]
END-EXEC
Pág: 19 12/10/20
RETRIEVE
EXEC CICS
RETRIEVE
[INTO(identificador)]
[LENGTH(identificador)]
END-EXEC
Pág: 20 12/10/20
Paso de datos
El programa llamador:
Define la COMMAREA en la WORKING-
STORAGE SECTION con cualquier nombre
El programa llamado:
Recibe los datos en un área de la LINKAGE
SECTION que debe llamarse DFHCOMMAREA.
Puede determinar la longitud de este área a través
de EIBCALEN
La COMMAREA se pasa por referencia
Pág: 21 12/10/20
Control de terminales
EXEC CICS
SEND
MAP(‘nombre’)
[MAPSET(‘nombre’)]
[ERASE]
[FREEKB]
END-EXEC
EXEC CICS
RECEIVE
MAP(‘nombre’)
[MAPSET(‘nombre’)]
END-EXEC
Pág: 22 12/10/20
Lectura de ficheros
EXEC CICS
READ
DATASET(‘nombre’)
INTO(área-datos)
[LENGTH(long.)]
RIFLD(clave)
[KEYLENGTH(long.) GENERIC]
[GTEQ | EQUAL]
[UPDATE]
END-EXEC
Pág: 23 12/10/20
“Browse” de ficheros
EXEC CICS
STARTBR | RESETBR
DATASET(‘nombre’)
RIFLD(clave)
[REQID(número)]
[KEYLENGTH(long.) GENERIC]
[GTEQ | EQUAL]
END-EXEC
EXEC CICS
ENDBR
DATASET(‘nombre’)
[REQID(número)]
END-EXEC
Pág: 24 12/10/20
“Browse” de ficheros
EXEC CICS
READNEXT | READPREV
DATASET(‘nombre’)
INTO(área-datos)
[LENGTH(long.)]
RIFLD(clave)
[KEYLENGTH(long.)]
[REQID(número)]
END-EXEC
Pág: 25 12/10/20
Escritura de ficheros
EXEC CICS
WRITE
DATASET(‘nombre’)
FROM(área-datos)
[LENGTH(long.)]
RIFLD(clave)
[KEYLENGTH(long.)]
END-EXEC
EXEC CICS
REWRITE
DATASET(‘nombre’)
FROM(área-datos)
[LENGTH(long.)]
END-EXEC
Pág: 26 12/10/20
Borrado/liberación de registros
EXEC CICS
DELETE
DATASET(‘nombre’)
[RIFLD(clave)]
END-EXEC
EXEC CICS
UNLOCK
DATASET(‘nombre’)
END-EXEC
Pág: 27 12/10/20
Datos temporales
Datos transitorios
Definidos previamente
Sólo se leen una vez
Permiten el arranque de transacciones
Extrapartición
Intrapartición
Memoria temporal
Borrado explicito
Acceso secuencial o directo
Memoria o disco
Pág: 28 12/10/20
Colas TD (Transient Data)
EXEC CICS
WRITEQ TD
QUEUE(‘nombre’)
FROM(área-datos)
[LENGTH(long.)]
END-EXEC
EXEC CICS
READQ TD
QUEUE(‘nombre’)
INTO(área-datos)
[LENGTH(long.)]
END-EXEC
EXEC CICS
DELETEQ TD
QUEUE(‘nombre’)
END-EXEC
Pág: 29 12/10/20
Colas TS (Temporary Storage)
EXEC CICS
WRITEQ TS
QUEUE(‘nombre’)
FROM(área-datos)
[LENGTH(long.)]
[ITEM(área-datos) [REWRITE]]
[MAIN | AUXILIARY]
END-EXEC
EXEC CICS
READQ TS
QUEUE(‘nombre’)
INTO(área-datos)
[LENGTH(long.)]
NUMITEMS(área-datos)
[ITEM(área-datos) | NEXT ]
END-EXEC
Pág: 30 12/10/20
Colas TS (Temporary Storage)
EXEC CICS
DELETEQ TS
QUEUE(‘nombre’)
END-EXEC
Pág: 31 12/10/20
BMS (Basic Map Support)
Permite la definición de mapas para la
visualización de datos formateados
Tres macros:
DFHMSD: define un “mapset”
DFHMDI: define un mapa
DFHMDF: define un campo
Genera un fichero con la definición a
incluir en nuestro programa
Pág: 32 12/10/20
Definición de mapas
MAP DFHMSD TYPE=MAP,MODE=INOUT,LANG=COBOL,CTRL=FREEKB, X
TIOAPFX=YES,STORAGE=AUTO
Pág: 33 12/10/20
Transacciones CICS
CEMT:
Master Terminal Transaction
CECI:
Command Level Interpreter Transaction
CEBR:
Temporary Storage Browse Transaction
CEDF:
Command Level Execution Diagnostic Tansaction
CEDA:
Resource Definition on-line
Pág: 34 12/10/20
CEMT
FIle
PROGram
TDqueue ALL
CEMT Inquire
TErminal (nombre*)
TRAnsaction
TSqueue
Discard
Inquire
CEMT CEMT Set PRogram nombre NEwcopy
Perform
Set
Pág: 35 12/10/20
Ejercicio I
Definir el siguiente mapa:
----+----1----+----2----+----3----+----4----+----5----+
EJ01 MANTENIMIENTO EMPLEADOS
=======================
Acción.....: X (A,B,M,C)
Número.....: 999999
Nombre.....: XXXXXXXXXXXXXXXXXXXXXXXXX
Apellidos..: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Edad.......: 99
Ciudad.....: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Autonomía..: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
Pág: 36 12/10/20
Ejercicio I
Realizar el programa EJCICS01 de forma que muestre el mapa anterior: