miércoles, 27 de abril de 2011

Usando CICS: transacción CEMT.

A todos aquellos que alguna vez hemos trabajado con CICS nos sonará la transacción CEMT. Es una transacción propia del sistema que nos permite manejar funciones del "terminal maestro".

Para ejecutar esta transacción, podemos ir paso a paso navegando por las opciones, o teclear directamente una solicitud completa.

1.Al teclear CEMT y pulsar intro:
STATUS: ENTER ONE OF THE FOLLOWING

Discard
Inquire
Perform
Set


2.Solicitud completa:
CEMT INQUIRE TASK

o en abreviado como suele ser más común...
CEMT I TA

Sí, esa "I" famosa viene de "Inquire" (preguntar).

Como veis las opciones principales de la transacción son 4: Discard, Inquire, Perform y Set. Nosotros vamos a centrarnos en la opción "Inquire" por ser la que más solemos necesitar cuando estamos probando un programa CICS. Si queréis consultar las opciones de Discard, Perform y Set está todo en la web de IBM donde habla de CEMT-Master Terminal.

Comandos CEMT Inquire

La opción Inquire tiene a su vez muchas opciones, como TASK, TRANS, PROG, etc. que nos sonarán. Para empezar vamos a ver la lista completa de opciones posibles:


INQ

STATUS: ENTER ONE OF THE FOLLOWING OR HIT ENTER FOR DEFAULT

AUTInstmodel DUmpds       MODename       TDqueue
AUTOinstall  ENQ          MONitor        TErminal
AUXtrace     ENQModel     Netname        TRAnsaction
Bean         EXci         PArtner        TRDumpcode
BRfacility   FEConnection PROCesstype    TSModel
CFDTpool     FENode       PROFile        TSPool
CONnection   FEPOol       PROGram        TSQueue
CORbaserver  FEPRopset    REquestmodel   UOW
DB2Conn      FETarget     RRms           UOWDsnfail
DB2Entry     FIle         STAtistics     UOWLink
DB2Tran      Gtftrace     STReamname     Vtam
DEletshipped INttrace     SYDumpcode     Web
Dispatcher   IRc          SYStem
DJar         JModel       TAsk
DOctemplate  JOurnalname  TCLass
DSAs         JVmpool      TCPIP
DSName       Line         TCPIPService


Como veis son unas cuantas! Vamos a ver en detalle algunas de ellas.

FIle

Es habitual en las diferentes instalaciones que existan ficheros accesibles para CICS para controlar temas como la oficina asociada a un terminal, etc. Para acceder a este tipo de ficheros (VSAM, BDAM, base de datos...) lo primero que hacemos es abrirlos desde CICS:

CEMT I FI (abreviatura máxima)
Lista

Detalle


Para abrir un fichero situamos el cursor encima del estado (Openstatus) "Clo" y lo cambiamos por "Ope". Al pulsar intro se guardarán los cambios.
Ahora ya podremos entrar a editar el fichero desde nuestra sesión de TSO.

Otras opciones modificables son:
Addstatus    (Addable/Noaddable)
Browsestatus (Browse/Nobrowse)
Deletestatus (Delete/Nodelete)
Disposition  (Old/Share)
Emptystatus  (Emptyreq/Noemptyreq) Solo para VSAM
Enablestatus (Enabled/Unenabled/Disabled)
Readstatus   (Read/Noread)
Rlsaccess    (Rls/Notrls) Solo para VSAM
Table        (Nottable/Cftable/Cicstable/Usertable)
Updatestatus (Update/Noupdate)


Todos los detalles en la web de IBM sección CEMT INQUIRE FILE : )

PROGram

Esta opción nos muestra la lista de programas, mapas, etc. definidos en nuestro sistema. Si no le indicamos nada nos cargará la lista de TODOS los programas. Si queremos "filtrar" podemos indicar entre paréntesis el nombre del programa, o las primeras letras.

CEMT I PROG(XX*) (abreviatura máxima)
Lista

Detalle


Las opciones modificables son:
Executionset (Dplsubset/Fullapi)
Sharestatus  (Shared/Private)
Status       (Enabled/Disabled)


Todos los detalles en la web de IBM sección CEMT INQUIRE PROGRAM : )

SYStem

Esta opción nos devuelve información sobre el sistema CICS. En ella podemos consultar información como la conexión DB2 que está utilizando (Db2conn), el máximo de tareas simultáneas que puede ejecutar (Maxtasks), tiempo máximo antes de que el sistema asuma que una tarea está embuclada (Runaway), etc.

CEMT I SYS (abreviatura máxima)
Lista


Las opciones modificables son:
Aging        (número entre 0 y 65535)
Akp          (número entre 200 y 65535)
Dsalimit
Dtrprogram
Edsalimit
Logdefer     (número entre 0 y 65535)
Maxtasks     (número entre 0 y 999)
Mrobatch     (número entre 1 y 255)
Progautoctlg (Ctlgall/Ctlgmodify/Ctlgnone)
Progautoexit
Progautoinst (Autoactive/Autoinactive)
Runaway      (número entre 500 y 2700000 ó 0)
Scandelay    (número entre 0 y 5000)
Time         (número ente 100 y 3600000 y mayor que el valor de SCANDELAY)


Todos los detalles en la web de IBM sección CEMT INQUIRE SYSTEM : )

TAsk

En ocasiones necesitaremos poder purgar una tarea que se está ejecutando (por ejemplo cuando se nos ha embuclado y estamos llenando la cola del CICS de displays,
y alguien está a punto de matarnos...).

CEMT I TA (abreviatura máxima)
Lista

Detalle


Para "terminar" una tarea, basta con poner una "P" al lado de la linea de la tarea que queremos purgar.
En la opción Tra (Tranid) vendrá el nombre de nuestra transacción y en la opción Use (Userid) nuestro usuario (no vayamos a tirar la transacción del vecino).

Las opciones modificables son:
Priority (número de 0 a 255 siendo 255 la prioridad más alta)


Todos los detalles en la web de IBM sección CEMT INQUIRE TASK : )

TRAnsaction

Esta opción es muy útil para ver la transacción asociada a un programa y viceversa.
Nos devuelve información sobre las transacciones del sistema.

CEMT I TRANS (abreviatura máxima)
Lista


Podemos añadir a la consulta la opción PROG. Por ejemplo:

CEMT I TRANS(*) PROG(PROGRAMA)
Nos devolvería la transacción asociada al programa "PROGRAMA".

CEMT I TRANS(PV40) PROG(*)
Nos devolvería el programa asociado a la transacción PV40.

Las opciones modificables son:
Priority     (número de 0 a 255 siendo 255 la prioridad más alta)
Purgeability (Purgeable/Notpurgeable)
Status       (Enabled/Disabled)
Tclass


Todos los detalles en la web de IBM sección CEMT INQUIRE TRANSACTION : )

Y hasta aquí la segunda incursión en el mundo del CICS^^
Si queréis que entremos en detalle de alguna otra opción/transacción dejad un comentario.

5 comentarios:

Anónimo dijo...

Gracias de nuevo por el artículo; veo que explicas la utilización de CICS para realizar tareas con ficheros y con el sistema. Yo soy experto en Cobol y DB2 en otros entornos y no he trabajado con CICS, por ello me llama la atención que utilidad se le puede dar a CICS al trabajar en COBOL/CICS/DB2, no logro entender que funciones pueden realizarse en un probrama cobol CICS (por ejemplo)

Tallian dijo...

Saludos!
Un programa COBOL/CICS (o COBOL/CICS/DB2 si accede a base de datos) es un programa ONLINE, que es capaz de recuperar/enviar información a una ventana, interactuando así con el usuario.

En otros casos puede ser que en vez de CICS utilicen IMS como gestor de transacciones ONLINE.

Cuando esté listo el artículo con el primer ejemplo de programa COBOL/CICS quedará todo más claro : )
Talli.

Anónimo dijo...

Muchas gracias, estaré muy pendiente; supongo que tocarás temas con las instrucciones más utilizadas en el Cobol/CICS, un bosquejo general en dónde se explique la funcionalidad.

Tengo un equipo en el que puedo realizar prácticas Cobol/CICS/DB2 bajo zOS

Alejandro Ruiz dijo...

Hola que tal, esta muy bien su blog, pero me gustaria saber si podrian publicar algo mas sobre

CEMT I TSQueue y CEMT I TSPool

Agradezco la atencion

Tallian dijo...

Buenas Alejandro.
El CEMT I TSQ te recupera información de las colas TS (ver artículo http://www.consultoriocobol.com/2012/06/cobolcics-vol3-colas-ts.html). Te saldrá una lista con las que existan. Si te posicionas en alguna que no sea del sistema y pones una B será como hacer CEBR nombrecola.

El CEMT I TSP nunca lo he utilizado aunque si sigues el enlace que hay al final del artículo te viene la explicación.