Está en la página 1de 14

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS

Introduccin : El Programa de Control de Programas (PCP) es el mdulo de administracin CICS responsable de la ubicacin de los programas de aplicacin y, si fuera necesario, de su carga en la memoria para su ejecucin. ambi!n es reponsable de transferirle el control y de de"ol"er !ste al CICS cuando los programas de aplicacin #an completado su ejecucin. El PCP facilita tambi!n $ue un programa de aplicacin transfiera el control a tro programa de aplicacin. En esta unidad trataremos dos m!todos % &I'( y )C & . Objeti o!: *l completar !sta unidad podr+ ,d. #acer lo siguiente% E-plicar la funcin de los comandos PCP. Codificar los comandos PCP. .incular (LIN") o transferir el control (#CTL) de un programa de aplicacin a otro. ransferir datos de un programa de aplicacin a otro.

Programa de control Programas (PCP) % En el momento en $ue una tarea re$uiere un programa de aplicacin dado, !ste programa puede o no estar en la memoria. res son los moti"os por los $ue un programa puede estar ya en memoria cuando lo necesita una tarea% Es un programa RESIDENTE/ esto es, fue cargado en la memoria al iniciarse el CICS. &o est+ utili0ando otra tarea. &o utili0 otra tarea y como no necesit esa +rea de memoria para otra cosa, el programa permanece en la memoria.

,na de las funciones del PCP es la de determinar si el programa de aplicacin est+ o no en la particin1regin CICS. Si el programa de aplicacin no estu"iera en la memoria el PCP lo cargar+. ,na segunda funcin del PCP es la de transferir el control al programa de aplicacin de modo $ue pueda comen0ar su ejecucin. *l cumplir sus funciones de control de programa, el PCP recurre al uso de una tabla llamada abla de Procesamiento de Programas (PP ). &a tabla tiene una entrada por cada programa de aplicacin. Cada entrada contiene, entre otras cosas, los siguientes items% '2345E 6E& P5275*3* 6E *P&IC*CI2' 6I5ECCI2' E' 3E325I* 6I5ECCI2' E' 6ISC2 &E'7,*8E 6E P5275*3*CI2' ,S*62

El programador del sistema es responsable de la definicin de los programas en la PP . *l terminar una tarea, el programa de aplicacin por ella utili0ado puede no ser necesario ya. En muc#os casos el CICS puede "ol"er a utili0ar el +rea de almacenamiento $ue ocup el programa de aplicacin. Si la tarea $ue acaba de terminar fuera la 9nica tarea del usuario $ue

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS

utili0a un programa de aplicacin, el +rea de almacenamiento $ueda disponible para otros propsitos. 'o obstante, si "arias tareas estu"ieran usando el mismo programa de aplicacin, como acontece con frecuencia, el CICS no puede reutili0ar el +rea de almacenamiento #asta $ue #ayan concluido todas las tareas concurrentes.. * los fines de una adecuada administracin del almacenamiento, el PCP #a de saber si #ay tareas $ue corrientemente utilicen un mismo programa. El PCP obtiene esta informacin de un contador de uso de la entrada PP de ese programa de aplicacin% '2345E 6E& 6I5ECCI2' P5275*3* 6E E' *P&IC*CI;' 3E325I* 6I5ECCI2' &E'7,*8E 6E E' P5275*3*CI2' 6ISC2 ,S*62 C2' *625 6E ,S2

El contador se incrementa cda "e0 $ue una tarea comien0a a usar un programa. oda "e0 $ue termina una tarea, se decrementa el contador de uso. Cuando el contador est+ en cero, el PCP autori0a la reutili0acin del +rea $ue ocupa el programa de aplicacin. *s<, una de las funciones del PCP es la de determinar cuando las tareas dejan de necesitar los programas de aplicacin. P: Cu+les son las funciones generales del PCP = >>>>>>> R: 1) ,bicar el programa de aplicacin para una tarea dada y transferirle el control. :) 6e"ol"er el control al CICS cuando el programa de aplicacin termina su ejecucin. ?) 3antener un contador de ,S2 asociado con cada uno de los programas de aplicacin en el almacenamiento. P: Cu+les son los moti"os por los $ue un programa de aplicacin puede estar ya en el almacenamiento en el momento en $ue lo necesita una tarea= >>>>>>>> R: 1) Es un programa residente. :) &o est+ usando otra tarea. ?) @ued en el almacenamiento despu!s de #aber sido usado por una tarea por$ue el almacenamiento no se necesitaba para otra cosa. P: @ue es la PP = Cu+ntas entradas contiene y $ui!n es responsable por su preparacin=. >>>>>>>> R: &a PP es una tabla $ue usa el PCP. Aay tantas entradas como programas de aplicacin #aya en el sistema CICS. El programador de sistema es responsable de la preparacin de los nombres de los programas y de otra informacin descripti"a concerniente a cada uno de los programas de la PP . Consideraciones sobre los programas de aplicacin% Aasta a$u< #emos #ablado en t!rminos de una tarea $ue ejecuta un programa de aplicacin. En la operacin real, es com9n $ue una tarea re$uiera la ejecucin de "arios programas de aplicacin.

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS

Supongamos $ue un operador ingresa datos en una terminal para agregar o actuali0ar un registro. Entre las operaciones a lle"ar a cabo pueden incluirse% ,sar una rutina de "erificacin para comprobar la cla"e. Probar un cdigo para determinar se la entrada es un nue"o registro o una actuali0acin. *gregar un nue"o registro o actuali0ar un registro e-istente. Procesar condiciones de e-cepcin (de #aberlas).

In oc$cion de un %ro&r$'$: 6os son los comandos PCP $ue facilitan la transferencia del control de un programa a otro. Cuando se usa LIN" el control retorna finalmente al programa llamador/ con #CTL no. El comando &I'( se usa en su programa para llamar a otro programa, cuyo nombre se encierra entre parentesis. E#EC CICS LIN" PROGRAM(nombre>programa) Si fuera necesario se carga el programa llamado, y se le da el control. Supongamos $ue est+ ejecutando el programa A. En un punto dado, el programa A emite el comando LIN" para el programa B. BPor definicin* B es de un ni"el lgico inferior a AC. Se emite el comando LIN"/ *detiene la ejecucin pero no termina. Se carga B, recibe le control y ejecuta #asta $ue dentro de B se detecta un comando RETURN. En ese momento, el control se de"uel"e al programa llamador (en !ste caso, el programa BAC). Se reanuda la ejecucin de A en la instruccin $ue sigue de inmediato al comando LIN". &a secuencia puede ser diagramada de la siguiente manera% P5275*3* A P5275*3* B E#EC CICS LIN"

E#EC CICS RETURN P5275*3* 6E 'I.E& &27IC2 S,PE5I25 El comando 5E ,5' se codifica as<% E#EC CICS RETURN END+E#EC P5275*3* 6E 'I.E& &27IC2 I'DE5I25

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS


Este comando se usa para de"ol"er el control% al programa del siguiente ni"el lgico superior, o al CICS cuando termina la tarea.

Cuando un programa de aplicacin emite un comando &I'( a otro programa de aplicacin, el nombre del programa llamado debe estar en la PP . Si no lo estu"iera, se produce un error de identificacin de programa (P73I6E55). Para e"itar una terminacin anormal si en la PP no se #allara el nombre de un programa llamado, debe codificarse una sentencia de condicin A*'6&E $ue especifi$ue P73I6E55, $ue se colocar+ delante de la sentencia &I'(. Por ejemplo% E#EC CIS ,ANDLE CONDITION PGMIDERR(NO+PROGRAMA) ++++++ E#EC CICS LIN" PROGRAM(-PROGRAMB.) ++++++ E#EC CICS RETURN >>>>>>> '2>P5275*3*. B ..... rutina de error de programa llamado ...... B En el ejemplo anterior, si el CICS no conociera P5275*3B en el momento de emitirse el comando &I'(, el control se transfiere a la rutina de error ('2>P5275*3*) de P5275*3A. En la "inculacin, el 5E ,5' se produce siempre al programa llamador. En ocaciones, particularmente en el caso en $ue sea necesario di"idir en dos o m+s partes menores a un programa de muc#os pasos secuenciales, no es necesario retornar al programa llamador. Si un programa de aplicacin fuera in"ocado por un comando )C &, el control se transferir+ al programa nombrado/ no obstante, el programa llamador no "ol"er+ a ganar el control despu!s de #aberse emitido el )C &. (&a tarea libera al programa llamador y !ste puede ser eliminado de memoria si no lo est+n utili0ando otras tareas). Por ejemplo% P5275*3 ) >>>>> >>>>> E#EC CICS #CTL P5275*3* F >>>>> >>>>> E#EC CICS #CTL P5275*3* G >>>>> E#EC CICS RETURN

*d"i!rtase $ue cuando un programa se ejecuta por medio de un )C & el programa in"ocado es del mismo ni"el lgico del programa llamador. El formato del comando )C & es el siguiente% E#EC CICS #CTL PROGRAM (n$'e)

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS

Se usa este comando para llamar a otro programa. El programa llamado se carga y, si fuera necesario, recibe el control. Cuando en un programa in"ocado por un comando )C & se emite un comando 5E ,5', el retorno se produce al siguiente ni"el lgico m+s alto o al CICS si no se emiten &I'(S. Por ej!mplo% P5275*3* * P5275*3* ) P5275*3* F P5275*3* G

E#EC CICS LIN" +++++ +++++ E#EC CICS RETURN

>>>>> >>>>> E#EC CICS #CTL

>>>>> >>>>> E#EC CICS #CTL

>>>>> >>>>> E#EC CICS RETURN

En resumen%

&I'( transfiere el control al programa llamado sobre la base temporaria. El control se de"ol"er+ al programa $ue emiti el comando &I'(. )C & transfiere el control al programa llamado sin de"ol"er m+s tarde el cpntrol al programa llamador. El programa llamador y el llamado son del 'i!'o ni"el lgico. Sal"o $ue otra tarea estu"iera ejecutando al programa llamador, su memoria $ueda disponible para otro uso.

Puede tambi!n producirse el error P73I6E55 en cone-in con la funcin )C &. Para e"itar la terminacin anormal de una tarea, deber+ codificarse una secuencia de condicin A*'6&E $ue especifi$ue P73I6E55 y $ue preceda al comando )C &. Por ejemplo% P5275*3* * E#EC CICS ,ANDLE DONDITION PGMIDERR (NO+PROGRAMA)

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS


++++++ ++++++ E#EC CICS #CTL PROGRAM (-PROGRAMB.) ++++++ ++++++ E#EC CICS RETURN NO+PROGRAMA/ 5utina de error por programa no encontrado

Si el CICS no pudiera identificar a P5275*34, el sistema de"uel"e el control al programa original, en el p+rrafo '2>P5275*3*. P: Cual es la "entaja principal de la "inculacin (&I'() o de la transferencia de control ()C &)=. >>>>>>>>>>> R: 5educir el total de memoria $ue un programa de aplicacin necesita en un programa dado. P: Cu+ndo debiera usarse &I'(= F cu+ndo )C &= >>>>>>>>>>>> R: ,sar &I'( para segmentar programas cuyas funciones pueden o no ser necesarias (por ejemplo, rutina de condiciones anormales, rutinas de actuali0acin o de agregado). ,sar )C & para subdi"idir grandes programas en dos o mas partes cuando no #aya un moti"o lgico para retornar a la parte anterior despu!s de la ejecucin de una parte subsiguiente. P: @u! comando se usa para retornar al programa del siguiente ni"el m+s alto= F para de"ol"er el control al CICS=. >>>>>>>>>>>>> R: En ambos casos, el comando $ue se usa es E#EC CICS RETURN Ter'in$cin $nor'$0 de un$ t$re$: Aasta a$u< #emos considerado la ejecucin de programas de aplicacin $ue procesan normalmente #asta el fin del programa. Empero, pueden darse circunstancias $ue re$uieran la terminacin anormal "oluntaria de una transaccin. 6urante una operacin JnormalK raramente se produce una terminacin anormal "oluntaria (*4E'6), pero !sta es una erramienta 9til en la prueba de programas. Para parar la ejecucin, use el siguiente formato de comando% E#EC CICS ABEND El comando *4E'6 termina la ejecucin de la tarea. Se transmite un mensaje CICS *4E'6 a la terminal asociada con la tarea. 2pcionalmente, puede obtenerse un "uelco de todas las +reas de memoria $ue usaba la transaccin terminada anormalmente, o $ue est+n asociadas con ella , especificando la opcin *4C26E. Por ejemplo%

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS


E#EC CICS ABEND ABCODE(-####.)

1 * E C*5*C E5ES I6E' IDIC*'62 E& .,E&C2 P52.IS 2 P25 CICS.

El par+metro de cuatro caract!res $ue sigue a *4C26E identifica el "uelco y puede ser usado por el programador para determinar si se produjo la terminacin anormal y 1 o su causa.

Pro&r$'$cin 'odu0$r: En la introduccin a esta unidad presentamops un ejemplo de aplicacin. Ae a$u< ese ejmplo tal como podr<a representarse en un programa batc# o en un programa CICS sin posibilidades de "inculacin.

I'ICI*&IGE 52, I'E .*&I6* E 52, I'E ES C26E 52, I'E *66 5EC256 5, I'E ,P6* E E)IS I'7 5EC256 52, I'E A*'6&E *4'253*& C2'6I I2'S 52, I'E

&a figura E.1 ilustra este programa tal como podr<a di"idirse en mdulos en los $ue se utili0an los comandos &I'( y )C & para mantener el flujo lgico y pro"eer a un uso m+s ptimo del almacenamiento.
1i& 2/3 Eje'%0o de

tr$n!4erenci$ de0 contro0 de un %&'. A otro b$jo CICS

I'ICI*&IG*5 .alidacin (&I'()

*C ,*&IG*CI2' 5E ,5'

*75E7*62 5E ,5'

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS


'i agregado ni *ctuali> Gacin ES *gregado *& CICS ( )C &) *ctuali0acin

*& CICS

.alidacion >>>> >>>> >>>>>

5E ,5' 5E ,5' *& CICS

&os programas para iniciali0ar, agregar un registro y actuali0ar son todos del mismo ni"el lgico. El comando 5E ,5' de"uel"e el control al programa del siguiente ni"el lgico m+s alto, en !ste caso CICS.. Se usa &I'( para llamar al programa .*&I6* E por$ue I'I I*&IGE tiene mas JtrabajoK $ue #acer. Cuando el control se retransfiere de .*&I6* E a I'I I*&IGE se prueba un cdigo para determinar si debe in"ocarse *66 o ,P6* E. &uego de la prueba, deja de ser necesario el programa I'I I*&IGE. Por lo tanto, )C & es el comando $ue se usa para llamar a *66 o ,P6* E.

Atencin de tr$n!$ccione! con er!$cion$0e!: Supongamos $ue se #a escrito un programa para procesar una transaccin con"ersacional. ,n operador ingresa en una terminal un pedido sobre un "iaje de "acaciones, dando las fec#as y el itinerario $ue se desea. El programa responde con una lista de #oteles y tarifas. 6espu!s $ue la lista de #oteles y de tarifas se transmite a la terminal, el operador e-amina la lista y selecciona los #oteles. Se transmiten los #oteles elegidos y el programa re> transmite una confirmacin de las reser"as. &a transaccin se identifica con el cdigo .*C1 y se muestra en la Digura E.:.

1i&/ 2/5/ Tr$n!$ccin Con er!$cion$0 P52CES2 6E 5E@,E5I3IE' 2 I'ICI*& E#EC CICS RECEIVE .*C1 P*ISES,DECA*S

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS


E#EC CICS SEND PROCESO DE SELECCI6N E#EC CICS RECEIVE E#EC CICS SEND E#EC CICS RETURN SE&ECCI2' C2'DI53*CI2' A2 E&ES, *5ID*S

6urante todo el procesamiento de esta transaccin, tanto el programa de aplicacin como otras areas de almacenamiento re$ueridas por la tarea se conser"aron en el almacenamiento. 6urante un gran porcentaje de !se tiempo, la tarea estu"o en un e!t$do de e!%er$, esperando $ue el operador respondiera. ,na manera de mejorar la utili0acin de la memoria consiste en di"idir al programa de aplicacin en dos programas y usar dos cdigos de transaccin, tal como puede obser"arse en la figura E.?. 1i&/ 2/7/ Do! Tr$n!$ccine! Inde%endiente! PROCESO DE RE8UERIMIENTO INICIAL E#EC CICS RECEIVE E#EC CICS SEND +++++ E#EC CICS RETURN PROCESO DE SELECCI6N E#EC CICS RECEIVE E#EC CICS SEND .*C: SE&ECCI2' C2'DI53*CI2' .*C1 P*ISES,DECA*S A2 E&ES, *5ID*S

E#EC CICS RETURN El operador ingresa el pedido inicial, $ue usa el cdigo de transaccin .*C1. Para el segundo pedido, el operador debe luego ingresar el cdigo de transaccin .*C: con la seleccin de #oteles. Este segundo paso no era necesario en el m!todo anterior y pareciera $ue #emos preparado un procedimiento operati"o m+s tedioso para conser"ar espacio en el almacenamiento. *fortunadamente, no es este el caso puesto $ue bajo el CICS una transaccin puede asociarse con otra, terminando los programas de procesamiento con el siguiente comando% E#EC CICS RETURN TRANSID (n$'e) en donde n$'e es la I6 de la transaccin $ue #a de arrancar autom+ticamente.

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS

1O

3odifi$uemos el ejemplo anterior de modo $ue el programa .*C1 termine con un programa 5*'SI6 seguido por el nombre de la I6 de transaccin (.*C:) asociada con el segundo programa. ,na "e0 procesada la primer transaccin, el comando 5E ,5' retransfiere el control al CICS. El PCP anali0a el par+metro 5*'SI6 y almacena el cdigo de transaccin conjuntamente con otra informacin concerniente a la terminal asociada con la tarea $ue acaba de completarse. *l recibirse el siguiente mensaje de la mmisma terminal (por ejemplo, la respuesta JseleccinK) se crea una nue"a tarea con el cdigo de transaccin .*C:. Este proceso se llama %!eudo+con er!$cion$0 y se ilustra en la figura E.E. 1i&/ 2/2/ Tr$n!$ccine! P!eudo+Con er!$cion$0 VAC3 PROCESO DE RE8UERIMIENTO INICIAL E#EC CICS RECEIVE E#EC CICS SEND +++++ E#EC CICS RETURN TRANSID(-VAC5.) PROCESO DE SELECCI6N VAC5 E#EC CICS RECEIVE E#EC CICS SEND E#EC CICS RETURN &as transaccines pseudo>con"ersacionales ofrecen dos "entajas% 'o se utili0a inncesariamente la memoria durante la entrada 1 salida normal ni durante el tiempo $ue el operador necesita para tomar decisiones. El operador slo necesita conocer el cdigo inicial de la transaccin. El operador ignora $ue el programa #a sido di"idido en dos tareas. C$r&$ de un$ T$b0$. El comando &2*6 le permite cargar una tabla necesaria para procesar una transaccin. Su formato es el siguiente% E#EC CICS LOAD PROGRAM (n$'e) SET (%ointer) LENGT,(d$t$+$re$) ,OLD 9 PROGRAM% El nombre identifica la tabla a cargar. El CICS consideraa esta tabla como un programa, puesto $ue la tabla debe residir en la biblioteca de programas y el el nombre de la tabla debe ingresarse en la PP (tabla de Procesamiento de Programas). 'o es codificacin ejecutable. .*C: SE&ECCI2' C2'DI53*CI2' .*C1 P*ISES,DECA*S A2 E&ES, *5ID*S

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS


9 SET

11

El CICS almacena la direccin inicial en la $ue fue cargada la tabla en el JsePaladorK (ponter) indicado por el par+metro del SE . El sePalador define un campo binario de cuatro bytes. Es opcional. Si se diera &E'7 A en el comando &2*6, los datos cargados se limitan a la longitud indicada por Jdata>areaK. Se refiere al +rea de almacenamiento ocupada por la tabla nombrada en el comando &2*6. >>> Si se omitiera A2&6, se libera autom+ticamente el +rea de almacenamiento a la terminacin de la tarea $ue ejecut el comando &2*6. >>> Si se incluyera A2&6, la tabla permanece en el almacenamiento #asta $ue el sistema detecta el siguiente comando% E#EC CICS RELEASE PROGRAM(n$'e)

9 LENGT, 9 ,OLD

A2&6 es una opcin 9til. Por ejemplo, podr<a ,d. usar A2&6 para mantener una tabla de "alores en la memoria durante toda la ejecucin del CICS. &a figura E.H da un ejemplo de cmo podr<a codificarse esto% &I'(*7E SEC I2'. 1 P*53&IS . O? DI&&E5 PIC SN(M) C23P. O? *4P 5 PIC SN(M) C23P. >>>>>>>>>>> 1 *4&E). O? DIE&6*...... O? DI&E64....... O? DI&E6C....... >>>>>>>>> P52CE6,5E 6I.ISI2'. E#EC CICS LOAD PROGRAM ( -TABLE#.) SET (TABPRT) END+E#EC ,na "e0 dado el comando &2*6, puede accederse a la informacin de *4&E) por medio de los campos definidos en la tabla. Puede tambi!n usarse el comando &2*6 para cargar un mdulo de programa ejecutable. empero, se le usa con mayor frecuencia para cargar tablas. El error P73I6E55 puede asimismo producirse en cone-in con la funcin &2*6. Para e"itar la terminacin anormal de la tarea, debiera codificarse una sentencia de condicin A*'6&E $ue especifi$ue P73I6E55 delante del comando &2*6. Tr$n!4erenci$ de D$to! entre Pro&r$'$!: &os datos utili0ados o creados por un programa deben, en

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS

1:

ocaciones, ser transferidos a otro programa para informacin de !ste, o para procesamiento adicional. Cuando un programa transfiere el control a otro programa (a tra"! de &I'( o de )C &) y deben transferirse tambi!n datos, !stos deben almacenarse en un +rea de trabajo. En el comando &I'( o )C &, el programa llamador incluye el par+metro C233*5E*, sePalando as< su propsito de transferir datos al programa llamado. El formato del comando es el siguiente% E#EC CICS LIN" PROGRAM (n$'e) COMMAREA (d$t$+ $0ue) LENGT,(d$t$+ $0ue) o E#EC CICS #CTL PROGRAM (n$'e) COMMAREA (d$t$+ $0ue) LENGT,(d$t$+ $0ue) C233*5E* debe ser seguida por el nombre del +rea de trabajo en la cual se almacenan los datos a transferir. &E'7 A especifica la &2'7I ,6 de los datos. &a opcin &E'7 A se usa solamente en C242&. (5ecuerde $ue CICS es programable tambi!n en *sembler y P&1) El +rea de comunicaciones es e-terna al programa llamado. Por lo tanto, debe definirse el +rea en la &I'(*7E SEC I2' de un programa C242&. &I'(*7E SEC I2'. 1 6DAC233*5E*. O? 6* 21 >>>>>>>>>>>> O? 6* 2: >>>>>>>>>>>> En el programa llamado la definicin del +rea de comunicacin puede ser m+s corta $ue el +rea de comunicaciones si el programa llamado necesitara slo las primera parte de los datos transferidos. &a definicin no debe ser m+s larga $ue el +rea de comunicaciones. Lon&itud de0 Are$ de co'unic$cin: El programa llamado #alla la longitud del +rea de comunicaciones en el Blo$ue de Interfase de Ejecucin (EI4). 5ecuerde $ue slo #ay un blo$ue por tarea, y $ue el blo$ue se di"ide en campos $ue pueden ser accedidos por nombre. El +rea EI4C*&E' del blo$ue EI4 contiene la longitud del +rea de comunicacin del programa llamador, a saber% Si el programa llamador no tu"iera datos $ue transferir, EI4C*&E' ser+ igual a O. Si el programa llamado tu"iera datos $ue transferir, EI4C*&E' tendr+ la longitud del +rea de comunicacin.

*d"iertase $ue en C242& la longitud de !sta +rea debe aparecer en la opcin &E'7 A del comando &I'( o )C & emitido por el programa llamador. &a figura E.L da un ejemplo de +rea de comunicacin.

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS


9999999 PROGRAMA -PROG3. (LLAMADOR) 9999

1?

1i&/ 2/:

IDENTIFICATION DIVISION. PROGRAM-ID. PROG1 -----WORKING-STORAGE SECTION. 1 TRANSINF. 03 CAMPO1 PIC X(4). -------PROCED RE DIVISION. MOVE INVC TO CAMPO1. EXEC CICS !ANDLE CONDITION PGMIDERR(NOPROG) END-EXEC. EXEC CICS LINK PROGRAM(PROG") COMMAREA(TRANSINF) LENGT!(4) END-EXEC. -----NOPROG. QQQQQ rutina de mensaje de programa no encontrado QQQQQ EXEC CICS RET RN END-EXEC. 9999 PROGRAMA -PROG5. (LLAMADO) IDENTIFICATION DIVISION. PROGRAM-ID. PROG". -------LINKAGE SECTION. 1 DF!COMMAREA. 03 F NCION PIC X(4). ------PROCED RE DIVISION. IF EIBCALEN GREATER T!EN #ERO T!EN IF F NCION E$ AL INVC ambi!n puede usarse C233*5E* para transferir datos de una tarea a otra en una transaccin pseudo con"ersacional. &a opcin C233*5E* se agrega al comando 5E ,5' de la siguiente manera% E#EC CICS RETURN TRANSID(n$'e) COMMAREA(d$t$+$re$) LENGT,(d$t$+ $0ue) &as opciones 5*'SI6 y C233*5E* slo pueden usarse en programas del m+s alto ni"el lgico. odo intento de emitir el comando 5E ,5' con !stas opciones en programas $ue no sean del m+s alto ni"el lgico resultar+ en la condicin de e-cepcin I'.5E@.

Condicione! de E;ce%cin 6os son las condiciones de e-cepcin asociadas con los comandos PCP%

COBOLCICSMAIL

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS


1E

I'.5EC% Se produce un pedido in"+lido cuando en una tarea $ue no es el mas alto ni"el lgico se emite un comando 5E ,5' con la opcin 5*'SI6. P73I6E55% Se produce un error de identificacin de programa si se inacti"a el programa o una tabla, o no puede ser #allado en la PP . Se asume terminacin anormal.

P: 6istinguir una transaccin con er!$cion$0 de una %!eudo+con er!$cion$0/ >>>>>>>>> R: En una transaccin con er!$cion$0, la tarea puede estar en un estado de espera durante per<odos relati"amente largos de tiempo, esperando al operador. *s<, la memoria $ue re$uieren el programa de aplicacin y otras areas de almacenamiento $ue necesita la tarea puede seguir utili0andose durante toda la Jcon"ersacinK. ,na transaccin %!eudo+ con er!$cion$0 no obstruye la memoria durante el tiempo $ue el operador necesita para tomar decisiones. Esto se debe al #ec#o de $ue la transaccin pseudo con"ersacional se di"ide en dos o mas tareas, cada una de las cuales atiende un pedido del operador por "e0. P% Cu+l es el m!todo para transferir datos a un programa de aplicacin $ue #a sido in"ocado a tra"!s de un comando &I'( o )C &= >>>>>>>> R: ,sar la opcin C233*5E* del comando &I'( o )C &. Re!u'en de 0$ unid$d El Programa de Control de Programas (PCP) cumple !stas funciones% ,bica programas de aplicacin y los carga si fuera necesario. &es transfiere el control. Dacilita la transferencia de datos de un programa de aplicacin o tarea a otro(a). Para cumplir a$uellas funciones, el PCP debe recibir ciertos comandos del programa de aplicacin. Para cargar un programa en el siguiente ni"el lgico m+s bajo y transferirle el control, use &I'(. El control retornar+ al programa $ue emiti el &I'(. Para cargar un programa en el mismo ni"el lgico y transferirle el control, use )C &. El control no retornar+ al programa $ue emiti el )C &. Para terminar un programa, use *4E'6 o *4E'6 con *4C26E, 5E ,5' o 5E ,5' con la opcin 5*'SI6. Para cargar una tabla o un comando use el comando &2*6. Para transferir datos entre programas de aplicacin o tareas, use la opcin C233*5E*.

COBOLCICSMAIL

También podría gustarte