Академический Документы
Профессиональный Документы
Культура Документы
CICS
Qu es? Un subsistema procesador de transacciones. Se ejecuta como programa huesped bajo un Sistema Operativo. Controla aplicaciones interactivas de diferentes clases. Accede a diferentes sistemas de base de datos. Se comunica con diferentes tipos de terminales. Permite una carga alta de transacciones. Proporciona herramientas para desarrollar aplicaciones. TRANSACCIN Es una sesin de proceso para un usuario. - Iniciada desde un terminal. - Implica la ejecucin de uno o ms programas. - Utilizable por uno o varios usuarios. - Se identifica con un cdigo de 4 posiciones. Sistema transaccional tpico: - Muchos usuarios corren las mismas o similares transacciones, compartiendo los recursos del sistema. - Las transacciones son invocadas on-line y devuelven una salida on-line. Una transaccin es eficaz cuando se requiere. - Acceso inmediato a datos obteniendo el ltimo nivel de actualiacin. - Actualizar los datos en el mismo momento en que se produce la transaccin. TAREA Unidad de proceso interna por parte del CICS para dar servicio a una transaccin. - Una tarea se inicia tras una transaccin y queda ligado al terminal en el que se inici. - Los mensajes introducidos en ese terminal se pasarn a esa tarea y los mensajes emitidos desde la tarea se eniarn a ese terminal. - Cuando la tarea acaba el terminal queda libre. Transaccin conversacional 1. El operador introduce el cdigo de transaccin y los datos iniciales para llamar a la aplicacin. 2. El programa procesa la entrada y enva algn tipo de respuesta al operador. 3. El programa pide datos de entrada adicionales y espera hasta que el operador responde. 4. Qu ocurre si el operador se ha ausentado del lugar de trabajo? a. La tarea seguir activa y todos los recursos del CICS asociados con la tarea estn atados y no disponibles para ser usados por otras tareas hasta que el operador termine la transaccin. Transaccin pseudo-conversacional 1. El operador introduce el cdigo de la transaccin y los datos iniciales para llamar a la aplicacin. a. El programa procesa la entrada y responde al operador. 2. El programa ejecuta un RETURN al nivel ms alto, solicitando que la tarea acabe y especificando un nombre de TRANSID (cdigo transaccin) para permitir el proceso de la siguiente entreda del operador. a. La tarea acaba, liberndose los recursos que usaba para poder ser usado por otras tareas, pero el contacto con el terminal se mantiene.
**************************************************** * IDENTIFICATION DIVISION. * PROGRAM ID. 'EJEMPLO1'. * * WORKING-STORAGE SECTION. * 01 TRANS-INFO. * 02 CAMPO1 PIC X(4). * ... * * PROCEDURE DIVISION. * MOVE 'INVC' TO CAMPO1. * EXEC CICS LINK PROGRAM ('EJEMPLO1') * COMMAREA (TRANS-INFO) LENGHT(4) * END-EXEC. **************************************************** **************************************************** * IDENTIFICATION DIVISION. * PROGRAM ID. 'EJEMPLO2'. * * LINKAGE SECTION. * 01 DFHCOMMAREA. * 02 FUNCTION PIC X(4). * ... * * PROCEDURE DIVISION. * IF EIBCALEN > 0 THEN * IF FUNCTION = 'INVC' * * ... ****************************************************
( rea de mensajes )
Los campos de un Mapa se pueden clasificar: - Desde el punto de vista de un Programa: o REFERENCIABLE: si el programa puede acceder al campo. o NO-REFERENCIABLE: si el programa no puede acceder al campo. - Desde el punto de vista del Terminal, segn sus atributos: o PROTECCION o LUMINOSIDAD o ESTADO DE MODIFICACION, ETC - Desde el punto de vista del Usuario, segn la utilizacin del mismo: o CAMPO NO MODIFICABLE. Rtulos, literales, mensajes, etc. o CAMPO MODIFICABLE. Se puede cambiar su contenido. Para este tipo de campo es importante distinguir entre longitud fsica y lgica.
MANDATOS CICS
EXEC CICS HANDLE CONDITION CONDITION (etiqueta) CONDITION (etiqueta)... END-EXEC
Cada comando CICS tiene normalmente algunas condiciones de excepcin asociadas. SI desea tomar alguna accin en las posibles condiciones de error se utilizar el mandato HANDLE CONDITION. El mandato HANDLE CONDITION se codifica normalmente al principio del programa, porque una vez especificadas, las condiciones permanecen disponibles hasta que el programa termine. Si no se incluye el mandato HANDLE CONDITION, cuando se produzca una condicin excepcional el programa terminar anormalmente y devolver el control al CICS, mostrando un error en pantalla.
ENVO DE UN MAPA A UN TERMINAL CICS. * Todos los campos numricos tienen que ser S9(4) COMP.
EXEC CICS SEND MAP('nombre') -mximo 7 caracteresFROM (rea-de-datos) [ DATAONLY | MAPONLY ] LENGHT (valor-dato) MAPSET (nombre) CURSOR (valor-dato) SET (ref-ptr) | TERMINAL | PAGING WAIT ACCUM [ ERASE | ERASEAUP ] -> ERASE se carga todo el mapa entero. PRINT [ FREEKB ] [ ALARM ] [ FRSET ] END-EXEC
END-EXEC
Anlisis de los campos introducidos. - MENSAJE CON CAMPOS: Comprobar que datos se introducjeron verificando campoL (longitud del dato) y campoI (dato introducido). - MENSAJE SIN CAMPOS: Detectar la situacin por medio de una rutina de tratamiento para la condicin excepcional MAPFAIL. OBLIGATORIOS -> FORMA (formatos) -> COHERENCIA PANTALLA -> COHERENCIA CON OTRAS PANTALLAS -> COHERENCIA DE FICHEROS. Control de ficheros VSAM. Recuperar un registro por acceso directo.
EXEC CICS READ DATASET (nombre) INTO (rea-de-datos) LENGHT (valor-dato) RIDFLD (rea-de-datos) KEYLENGHT (valor-dato) [ GENERIC ] UPDATE GTEQ | EQUAL END-EXEC
-> Read field -> Cmo el record key -> Leer con update si sabemos que hay que actualizar.
END-EXEC
El registro queda bloqueado hasta que termina la tarea. Para desbloquear los recursos antes de que termine la tarea es preciso utilizar el mandato UNLOCK.
END-EXEC
Condiciones excepcionales. DSIDERR - error de identifiacin de fichero INVREQ - peticin invalida ILLOGIC - peticin ilgica *NOTFND - registro no encontrado *DUPREC - registro duplicado en el fichero *DUPKEY - clave duplicada cuando se usan ndices alternativos en VSAM *ENDFILE - fin de fichero durante un BROWSE LENGERR - registro demasiado largo para el rea de datos utilizado IOERR - error de E/S en disco NOSPACE - no hay espacio para aadir registros NOTOPEN - el fichero no est abierto * Las que podramos poner en algn programa. COLAS TS (Temporary Storage) - Facilidad de "cuaderno de notas" para almacenar y recuperar datos. - El mdulo TS permite un manejo muy flexible, con muchas posibilidades para manejo de colas de registros. - Las colas TS se soportan en dos medios o MEMORIA o FICHERO EN DISCO. (VSAM-ESDS gestionado por el mdulo TS). - Se reconocen por un identificador de hasta 8 caracteres. - No necesitan estar predefinidas en ninguna tabla. - El CICS mantiene en memoria un directorio con los identificadores de las colas TS existentes. - Los datos almacenados en la TS se pueden recuperar ms de una vez.
END-EXEC
END-EXEC
Actualizacin de Items.
EXEC CICS WRITEQ TS QUEUE (nombre) FROM (rea-datos) LENGHT (valor-dato) ITEM (rea-datos) REWRITE -> cod-terminal (Z907) y tipo de cola (CLIE)
END-EXEC
Condiciones excepcionales: ITEMERR - el nmero de item especificado en un READQ o WRITEQ est fuera de los lmites asignados a la cola TS; o cola en WRITEQ TS no puede ser encontrada. LENGERR - la longitud de los datos es mayor que la longitud definida para el campo de entrada. NOSPACE - no hay ms espacio disponible en la cola TS IOERR - Irrecuperable error de E/S para TS QIDERR - No existe una cola TS con ese nombre para peticin READQ o DELETEQ.
- XCTL: desde un programa cedemos el control a otro que se empieza a procesar y que al ejecutar el mandato RETURN cede el control a donde lo cedera el programa inicial, en este caso no paarecen niveles ya que ambos programas estn al mismo nivel.
- RETURN: devuelve el control al Programa de Nivel Superior SIEMPRE, pudiendo planificar la siguiente transaccin a ejecutar y en caso de que el Programa de nivel Superior sea el CICS acaba la tarea. LINK
EXEC CICS LINK END-EXEC PROGRAM(nombre) COMMAREA(nombre) LENGHT(valor-dato)
XCTL
EXEC CICS XCTL PROGRAM(nombre) [ COMMAREA(area-datos) ] END-EXEC
RETURN
EXEC CICS RETURN TRANSID(nombre) END-EXEC COMMAREA(area-datos) LENGHT(valor-dato)
ICE. El CICS planifica la informacin de la tarea a iniciar en un bloque de control que posteriormente utilizar. COLA TS. Los datos que se pasan entre las tareas se almacen en memoria temporal(TS), y se pueden recuperar con el mandato RETRIEVE. Formato del Mandato START.
EXEC CICS START INTERVAL (hhmmss) | INTERVAL (0) | TIME(hhmmss) TRANSID (nombre) REQUID (nombre) FROM (rea-dato) LENGHT (valor-dato) TERMID (nombre) SYSID (nombre) RTRANSID (nombre) RTERMID (nombre) QUEUE (nombre) NOCHECK PROTECT END-EXEC
REG1-REG2-REG3... Recupera cada registro TS en el rea del programa especificado en el parmetro INTO (rea). Formato del mandato RETRIEVE.
EXEC CICS RETRIEVE INTO SET (ref-ptr) LENGHT (valor-dato) RTRANSID (nombre) RTERMID (nombre) QUEUE (nombre) WAIT
END-EXEC
ERRORES CICS Los errores CICS son conocidos como ABENDS y el formato de presentacin en el terminal es el siguiente:
DFH2005 TRANSACTION xxxx PROGRAM yyyyyyyyyyy ABEND zzzz
Tipos de ABENDS: - ASRA: Es el que ocurre con ms frecuencia y y tiene que ver con operaciones realizadas con campos numricos que contienen valores alfanumricos no esperados. Error de programa. - ASRB: Similar al anterior aunque ocurre con mucha menos frecuencia. Error de sistema. - AICA: El programa en ejecucin a entrado en un bucle que no tiene fin. Time-out. - APCT: Ocurre generalmente cuando se llama a un programa CICS que no est dado de alta en las tablas del CICS que est en modo 'disable'.
El monitor EDF es una herramienta para deporar Programas CICS a nivel de Mandatos. Utiliza como dispositivo de comunicacin un terminal 3270. ARRANQUE DEL EDF: - Se puede hacer sobre el mismo Terminal que la Transaccin que se va a depurar o bien arrancar la transaccin en un terminal y depurar con EDF desde otro terminal. - Para arrancar el EDF debe teclearse: CEDF(id-Terminal), (ON | OFF) - Las funciones que se pueden realizar son las siguientes: o Modificar la memoria de trabajo del programa (Working). o Entrar en la transaccin CEBR. o Visualizar cualquier direccin de la particin CICS. o Visualizar el bloque EIB (al entrar en Working storage) o Eliminar el MODE depuracin EDF (END EDF SESSION). o Provocar un ABEND (ABEND USER TASK). o Suprimir la representacin del EDF en el terminal (STOP CONDITIONS /SUPRESS DISPLAY). o Visualizar campos en caracteres/hexadecimal (SWITH HEX/CHAR) o Visualizar los diez ltimos mandatos ejecutados. TRANSACTIONS FUNCTION Sing on Sign off CICS resources control Terminal status Message switching Resource definition online (RDO) CICS suplied transaction CESN CESF CEMT CEOT CMSG CEDA CEDB CEDC Manage EJB resources CREA -> Conectar con cosas Java. Kill hung task CEKL -> Para tirar tareas q se han quedado colgadas. CICS DB2 Interface DSNC or CEMT Processing and CMAC -> Consultar los errores de CICS. debugging programs CECI CEBR -> Gestionar colas CEDF CEDX -> Igual que el CEDF pero para usar desde Batch. Database control inquiry CDBI Database control interface CDBM Database control menu CDBC
X X
MAPA 2
TITLE 'MAPSET DE MENU DE GESTION DE ALUMNOS' PRINT NOGEN * *************************************************************************************************** * * MAPST08: MAPASET DEL MENU DE GESTION DE ALUMNOS. * * *************************************************************************************************** MAPST08 DFHMSD TYPE=MAP,LANG=COBOL,TIOAPFX=YES,MODE=INOUT, STORAGE=AUTO,CTRL=(FREEKB,FRSET),TERM=ALL MAP0208 DFHMDI SIZE=(18,80),LINE=3,COLUMN=1 DFHMDF POS=(1,16),ATTRB=(ASKIP,NORM),INITIAL='NIF', LENGTH=3 NIF DFHMDF POS=(1,28),ATTRB=(UNPROT,NORM),LENGTH=9 DFHMDF POS=(1,38),ATTRB=(ASKIP,NORM),LENGTH=1 DFHMDF POS=(3,16),ATTRB=(ASKIP,NORM),INITIAL='NOMBRE', LENGTH=6 NOMBRE DFHMDF POS=(3,28),ATTRB=(PROT,NORM),LENGTH=30 DFHMDF POS=(3,59),ATTRB=(ASKIP,NORM),LENGTH=1 DFHMDF POS=(5,16),ATTRB=(ASKIP,NORM),INITIAL='APELLIDOS', LENGTH=9 DFHMDF POS=(5,28),ATTRB=(PROT,NORM),LENGTH=30 APE DFHMDF POS=(5,59),ATTRB=(ASKIP,NORM),LENGTH=1 DFHMDF POS=(7,15),ATTRB=(ASKIP,NORM),INITIAL='TAREAS:', LENGTH=7 DFHMDF POS=(8,18),ATTRB=(ASKIP,NORM),LENGTH=11, INITIAL='1. CONSULTA' DFHMDF POS=(9,18),ATTRB=(ASKIP,NORM),LENGTH=7, INITIAL='2. ALTA' DFHMDF POS=(10,18),ATTRB=(ASKIP,NORM),LENGTH=7, INITIAL='3. BAJA' DFHMDF POS=(11,18),ATTRB=(ASKIP,NORM),LENGTH=15, INITIAL='4. MODIFICACION' DFHMDF POS=(13,18),ATTRB=(ASKIP,NORM),LENGTH=17, INITIAL='FIN (TECLEAR PA1)'
X X X X X X
TAREA
MAPA 3
TITLE 'MAPSET DE MENU DE GESTION DE ALUMNOS' PRINT NOGEN * *************************************************************************************************** * * MAPST08: MAPASET DEL MENU DE GESTION DE ALUMNOS. * * *************************************************************************************************** MAPST08 DFHMSD TYPE=MAP,LANG=COBOL,TIOAPFX=YES,MODE=INOUT, STORAGE=AUTO,CTRL=(FREEKB,FRSET),TERM=ALL MAP0308 DFHMDI SIZE=(1,80),LINE=22,COLUMN=1 MENSAJE DFHMDF POS=(1,1),ATTRB=(PROT,NORM),LENGTH=70 DFHMSD TYPE=FINAL END
Una vez hechos los 3 mapas hacer lo siguiente: - Abrir una nueva sesin de PASSPORT. - Poner L CICS en la pantalla de logeo. - Pulsar la tecla de Pausa para quitar lo de CICS en azul. - Escribir lo siguiente: (A continuacin XX es tu nmero) o CEDA DEF PROG(MAP01XX) y pulsar ENTER. o En las opciones que aparecen debajo poner: GROUP: GRXX LANGUAGE: ASSEMBLER Pulsar ENTER. o CEDA DEF PROG(MAP02XX) y pulsar ENTER. o En las opciones que aparecen debajo poner: GROUP: GRXX LANGUAGE: ASSEMBLER Pulsar ENTER. o CEDA DEF PROG(MAP03XX) y pulsar ENTER. o En las opciones que aparecen debajo poner: GROUP: GRXX LANGUAGE: ASSEMBLER Pulsar ENTER. - Borrar lo que haya escrito arriba y escribir lo siguiente: o CEDA I G(GRXX) o Pulsar ENTER. Salir del CEDA (no s si era dndole al F3). o Una vez est la pantalla vaca escribir: CECI y pulsar ENTER. SEND MAP(MAP01XX) y pulsar ENTER 2 veces. SEND MAP(MAP02XX) y pulsar ENTER 2 veces. SEND MAP(MAP03XX) y pulsar ENTER 2 veces. Ahora ya debes de ver la pantalla con los 3 mapas que hiciste.