You are on page 1of 14

TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS

1

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

Programa de control Programas (PCP) % En el momento en $ue una tarea re$uiere un programa de aplicación 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 aplicación est+ o no en la partición1región CICS. Si el programa de aplicación no estu"iera en la memoria el PCP lo cargar+. ,na segunda función del PCP es la de transferir el control al programa de aplicación de modo $ue pueda comen0ar su ejecución. *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 aplicación. 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 definición de los programas en la PP . *l terminar una tarea, el programa de aplicación 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 aplicación. Si la tarea $ue acaba de terminar fuera la 9nica tarea del usuario $ue

COBOLCICSMAIL

* los fines de una adecuada administración del almacenamiento. una de las funciones del PCP es la de determinar cuando las tareas dejan de necesitar los programas de aplicación. El PCP obtiene esta información de un contador de uso de la entrada PP de ese programa de aplicación% '2345E 6E& 6I5ECCI2' P5275*3* 6E E' *P&IC*CI.bicar el programa de aplicación para una tarea dada y transferirle el control. si "arias tareas estu"ieran usando el mismo programa de aplicación. :) &o est+ usando otra tarea.S*62 C2' *625 6E . el PCP autori0a la reutili0ación del +rea $ue ocupa el programa de aplicación.S2 asociado con cada uno de los programas de aplicación en el almacenamiento. el CICS no puede reutili0ar el +rea de almacenamiento #asta $ue #ayan concluido todas las tareas concurrentes. El programador de sistema es responsable de la preparación de los nombres de los programas y de otra información descripti"a concerniente a cada uno de los programas de la PP . 'o obstante. Aay tantas entradas como programas de aplicación #aya en el sistema CICS. >>>>>>>> R: &a PP es una tabla $ue usa el PCP. como acontece con frecuencia.TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS : utili0a un programa de aplicación. oda "e0 $ue termina una tarea. P: @ue es la PP = Cu+ntas entradas contiene y $ui!n es responsable por su preparación=. se decrementa el contador de uso. ?) @uedó en el almacenamiento despu!s de #aber sido usado por una tarea por$ue el almacenamiento no se necesitaba para otra cosa. Cuando el contador est+ en cero.S2 El contador se incrementa cda "e0 $ue una tarea comien0a a usar un programa. COBOLCICSMAIL .' 3E325I* 6I5ECCI2' &E'7. es com9n $ue una tarea re$uiera la ejecución de "arios programas de aplicación. el +rea de almacenamiento $ueda disponible para otros propósitos. Consideraciones sobre los programas de aplicación% Aasta a$u< #emos #ablado en t!rminos de una tarea $ue ejecuta un programa de aplicación. :) 6e"ol"er el control al CICS cuando el programa de aplicación termina su ejecución. P: Cu+les son las funciones generales del PCP = >>>>>>> R: 1) .*8E 6E E' P5275*3*CI2' 6ISC2 . P: Cu+les son los moti"os por los $ue un programa de aplicación puede estar ya en el almacenamiento en el momento en $ue lo necesita una tarea= >>>>>>>> R: 1) Es un programa residente. el PCP #a de saber si #ay tareas $ue corrientemente utilicen un mismo programa. ?) 3antener un contador de . En la operación real. *s<..

5' se codifica as<% E#EC CICS RETURN END+E#EC P5275*3* 6E 'I. Se carga B. recibe le control y ejecuta #asta $ue dentro de B se detecta un comando RETURN. E#EC CICS LIN" PROGRAM(nombre>programa) Si fuera necesario se carga el programa llamado.TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS ? Supongamos $ue un operador ingresa datos en una terminal para agregar o actuali0ar un registro. En un punto dado.sar una rutina de "erificación para comprobar la cla"e. En ese momento. Cuando se usa LIN" el control retorna finalmente al programa llamador/ con #CTL no. &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. Procesar condiciones de e-cepción (de #aberlas). *gregar un nue"o registro o actuali0ar un registro e-istente. cuyo nombre se encierra entre parentesis. el programa A emite el comando LIN" para el programa B. Entre las operaciones a lle"ar a cabo pueden incluirse% • • • • . y se le da el control. el programa BAC). In oc$cion de un %ro&r$'$: 6os son los comandos PCP $ue facilitan la transferencia del control de un programa a otro.PE5I25 El comando 5E . Supongamos $ue est+ ejecutando el programa A. Se emite el comando LIN"/ *detiene la ejecución pero no termina. El comando &I'( se usa en su programa para llamar a otro programa. Se reanuda la ejecución de A en la instrucción $ue sigue de inmediato al comando LIN". Probar un código para determinar se la entrada es un nue"o registro o una actuali0ación. BPor definición* B es de un ni"el lógico inferior a AC.E& &27IC2 I'DE5I25 COBOLCICSMAIL . el control se de"uel"e al programa llamador (en !ste caso.

el nombre del programa llamado debe estar en la PP . En la "inculación. En ocaciones. rutina de error de programa llamado . 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. 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 lógico del programa llamador.. Para e"itar una terminación anormal si en la PP no se #allara el nombre de un programa llamado. debe codificarse una sentencia de condición A*'6&E $ue especifi$ue P73I6E55. no es necesario retornar al programa llamador. el programa llamador no "ol"er+ a ganar el control despu!s de #aberse emitido el )C &.5' se produce siempre al programa llamador. o • al CICS cuando termina la tarea. el control se transferir+ al programa nombrado/ no obstante. (&a tarea libera al programa llamador y !ste puede ser eliminado de memoria si no lo est+n utili0ando otras tareas). 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 Este comando se usa para de"ol"er el control% • al programa del siguiente ni"el lógico superior. E Cuando un programa de aplicación emite un comando &I'( a otro programa de aplicación. el control se transfiere a la rutina de error ('2>P5275*3*) de P5275*3A. Por ejemplo% E#EC CIS ...ANDLE CONDITION PGMIDERR(NO+PROGRAMA) ++++++ E#EC CICS LIN" PROGRAM(-PROGRAMB.. $ue se colocar+ delante de la sentencia &I'(. Si un programa de aplicación fuera in"ocado por un comando )C &. el 5E .. Si no lo estu"iera.. B . se produce un error de identificación de programa (P73I6E55)... si el CICS no conociera P5275*3B en el momento de emitirse el comando &I'(..) ++++++ E#EC CICS RETURN >>>>>>> '2>P5275*3*. B En el ejemplo anterior.

Para e"itar la terminación anormal de una tarea. Cuando en un programa in"ocado por un comando )C & se emite un comando 5E .5'.TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS H Se usa este comando para llamar a otro programa. recibe el control. Por ejemplo% P5275*3* * E#EC CICS .  Sal"o $ue otra tarea estu"iera ejecutando al programa llamador. si fuera necesario. )C & transfiere el control al programa llamado sin de"ol"er m+s tarde el cpntrol al programa llamador. el retorno se produce al siguiente ni"el lógico m+s alto o al CICS si no se emiten &I'(S. El control se de"ol"er+ al programa $ue emitió el comando &I'(.ANDLE DONDITION PGMIDERR (NO+PROGRAMA) COBOLCICSMAIL . 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 programa llamado se carga y. deber+ codificarse una secuencia de condición A*'6&E $ue especifi$ue P73I6E55 y $ue preceda al comando )C &. su memoria $ueda disponible para otro uso. • Puede tambi!n producirse el error P73I6E55 en cone-ión con la función )C &.  El programa llamador y el llamado son del 'i!'o ni"el lógico.

pueden darse circunstancias $ue re$uieran la terminación anormal "oluntaria de una transacción. use el siguiente formato de comando% E#EC CICS ABEND El comando *4E'6 termina la ejecución de la tarea. Por ejemplo% COBOLCICSMAIL . en el p+rrafo '2>P5275*3*. especificando la opción *4C26E. Empero. rutinas de actuali0ación o de agregado). >>>>>>>>>>>>> R: En ambos casos. Para parar la ejecución. el comando $ue se usa es E#EC CICS RETURN Ter'in$ción $nor'$0 de un$ t$re$: Aasta a$u< #emos considerado la ejecución de programas de aplicación $ue procesan normalmente #asta el fin del programa. P: Cual es la "entaja principal de la "inculación (&I'() o de la transferencia de control ()C &)=. 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=. rutina de condiciones anormales. >>>>>>>>>>> R: 5educir el total de memoria $ue un programa de aplicación necesita en un programa dado.) ++++++ ++++++ E#EC CICS RETURN NO+PROGRAMA/ 5utina de error por programa no encontrado I Si el CICS no pudiera identificar a P5275*34. el sistema de"uel"e el control al programa original. .sar )C & para subdi"idir grandes programas en dos o mas partes cuando no #aya un moti"o lógico para retornar a la parte anterior despu!s de la ejecución de una parte subsiguiente. 6urante una operación JnormalK raramente se produce una terminación anormal "oluntaria (*4E'6).sar &I'( para segmentar programas cuyas funciones pueden o no ser necesarias (por ejemplo. 2pcionalmente.TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS ++++++ ++++++ E#EC CICS #CTL PROGRAM (-PROGRAMB. o $ue est+n asociadas con ella . Se transmite un mensaje CICS *4E'6 a la terminal asociada con la tarea. pero !sta es una erramienta 9til en la prueba de programas. puede obtenerse un "uelco de todas las +reas de memoria $ue usaba la transacción terminada anormalmente. P: Cu+ndo debiera usarse &I'(= F cu+ndo )C &= >>>>>>>>>>>> R: .

I'E &a figura E.5' COBOLCICSMAIL .5' *75E7*62 5E .*&IG*CI2' 5E .*&I6* E 52.P6* E E)IS I'7 5EC256 52. I'E ES C26E 52. I'E ..IS 2 P25 CICS.1 ilustra este programa tal como podr<a di"idirse en módulos en los $ue se utili0an los comandos &I'( y )C & para mantener el flujo lógico y pro"eer a un uso m+s óptimo del almacenamiento. 1i& 2/3 Eje'%0o de tr$n!4erenci$ de0 contro0 de un %&'. I'E . 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 terminación anormal y 1 o su causa. Pro&r$'$ción 'odu0$r: En la introducción a esta unidad presentamops un ejemplo de aplicación. A otro b$jo CICS I'ICI*&IG*5 . I'E A*'6&E *4'253*& C2'6I I2'S 52.alidación (&I'() *C . I'E *66 5EC256 5.TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS E#EC CICS ABEND ABCODE(-####. Ae a$u< ese ejmplo tal como podr<a representarse en un programa batc# o en un programa CICS sin posibilidades de "inculación.E&C2 P52.) L 1 * E C*5*C E5ES I6E' IDIC*'62 E& . I'ICI*&IGE 52.

Se usa &I'( para llamar al programa . Por lo tanto. El comando 5E . 6espu!s $ue la lista de #oteles y de tarifas se transmite a la terminal. deja de ser necesario el programa I'I I*&IGE.E5I3IE' 2 I'ICI*& E#EC CICS RECEIVE .*C1 y se muestra en la Digura E. &a transacción se identifica con el código . dando las fec#as y el itinerario $ue se desea.DECA*S COBOLCICSMAIL . agregar un registro y actuali0ar son todos del mismo ni"el lógico.alidacion >>>> >>>> >>>>> 5E .P6* E. Se transmiten los #oteles elegidos y el programa re> transmite una confirmación de las reser"as.5' *& CICS &os programas para iniciali0ar. en !ste caso CICS.5' de"uel"e el control al programa del siguiente ni"el lógico m+s alto. &uego de la prueba.*&I6* E por$ue I'I I*&IGE tiene mas JtrabajoK $ue #acer. Atención de tr$n!$ccione! con er!$cion$0e!: Supongamos $ue se #a escrito un programa para procesar una transacción con"ersacional.:.5' 5E . . El programa responde con una lista de #oteles y tarifas.*&I6* E a I'I I*&IGE se prueba un código para determinar si debe in"ocarse *66 o .P6* E.. 1i&/ 2/5/ Tr$n!$cción Con er!$cion$0 P52CES2 6E 5E@. el operador e-amina la lista y selecciona los #oteles.n operador ingresa en una terminal un pedido sobre un "iaje de "acaciones.*C1 P*ISES. )C & es el comando $ue se usa para llamar a *66 o .TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS 'i agregado ni *ctuali> Gación ES *gregado *& CICS ( )C &) *ctuali0ación M *& CICS . Cuando el control se retransfiere de .

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. COBOLCICSMAIL . no es este el caso puesto $ue bajo el CICS una transacción puede asociarse con otra. *5ID*S N 6urante todo el procesamiento de esta transacción. *fortunadamente. 1i&/ 2/7/ Do! Tr$n!$ccióne! 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 .?. 6urante un gran porcentaje de !se tiempo. tanto el programa de aplicación como otras areas de almacenamiento re$ueridas por la tarea se conser"aron en el almacenamiento. 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. .*C1 P*ISES. 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 transacción $ue #a de arrancar autom+ticamente. la tarea estu"o en un e!t$do de e!%er$. tal como puede obser"arse en la figura E. *5ID*S E#EC CICS RETURN El operador ingresa el pedido inicial.na manera de mejorar la utili0ación de la memoria consiste en di"idir al programa de aplicación en dos programas y usar dos códigos de transacción.DECA*S A2 E&ES. Para el segundo pedido. $ue usa el código de transacción . el operador debe luego ingresar el código de transacción .*C1. esperando $ue el operador respondiera.*C: con la selección de #oteles.*C: SE&ECCI2' C2'DI53*CI2' .

El CICS consideraa esta tabla como un programa. El comando &2*6 le permite cargar una tabla necesaria para procesar una transacción.DECA*S A2 E&ES.) PROCESO DE SELECCI6N VAC5 E#EC CICS RECEIVE E#EC CICS SEND E#EC CICS RETURN &as transacciónes 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.*C:. El operador ignora $ue el programa #a sido di"idido en dos tareas. la respuesta JselecciónK) se crea una nue"a tarea con el código de transacción . 'o es codificación ejecutable.(d$t$+$re$) . El PCP anali0a el par+metro 5*'SI6 y almacena el código de transacción conjuntamente con otra información concerniente a la terminal asociada con la tarea $ue acaba de completarse.*C: SE&ECCI2' C2'DI53*CI2' . *5ID*S COBOLCICSMAIL . 1i&/ 2/2/ Tr$n!$ccióne! 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.5' retransfiere el control al CICS.TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS 1O 3odifi$uemos el ejemplo anterior de modo $ue el programa .E.*C1 termine con un programa 5*'SI6 seguido por el nombre de la I6 de transacción (. Este proceso se llama %!eudo+con er!$cion$0 y se ilustra en la figura E. Su formato es el siguiente% E#EC CICS LOAD PROGRAM (n$'e) SET (%ointer) LENGT. . 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).*C:) asociada con el segundo programa.na "e0 procesada la primer transacción. el comando 5E . • El operador sólo necesita conocer el código inicial de la transacción. C$r&$ de un$ T$b0$.OLD 9 PROGRAM% El nombre identifica la tabla a cargar. *l recibirse el siguiente mensaje de la mmisma terminal (por ejemplo. .*C1 P*ISES.

Puede tambi!n usarse el comando &2*6 para cargar un módulo de programa ejecutable. El error P73I6E55 puede asimismo producirse en cone-ión con la función &2*6... >>> Si se incluyera A2&6.. >>> Si se omitiera A2&6. Si se diera &E'7 A en el comando &2*6. O? DIE&6*.d. Es opcional. Se refiere al +rea de almacenamiento ocupada por la tabla nombrada en el comando &2*6.) SET (TABPRT) END+E#EC .. O? DI&E6C. O? DI&&E5 PIC SN(M) C23P.. puede accederse a la información de *4&E) por medio de los campos definidos en la tabla. &a figura E. 1 P*53&IS . 9 . se le usa con mayor frecuencia para cargar tablas. Por ejemplo. E#EC CICS LOAD PROGRAM ( -TABLE#. los datos cargados se limitan a la longitud indicada por Jdata>areaK... O? DI&E64..OLD A2&6 es una opción 9til. >>>>>>>>> P52CE6..5E 6I...na "e0 dado el comando &2*6. Para e"itar la terminación anormal de la tarea. usar A2&6 para mantener una tabla de "alores en la memoria durante toda la ejecución del CICS.H da un ejemplo de cómo podr<a codificarse esto% &I'(*7E SEC I2'. se libera autom+ticamente el +rea de almacenamiento a la terminación de la tarea $ue ejecutó el comando &2*6. El sePalador define un campo binario de cuatro bytes. empero.. debiera codificarse una sentencia de condición 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. podr<a .TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS 9 SET 11 El CICS almacena la dirección inicial en la $ue fue cargada la tabla en el JsePaladorK (ponter) indicado por el par+metro del SE . O? *4P 5 PIC SN(M) C23P.. en COBOLCICSMAIL .... la tabla permanece en el almacenamiento #asta $ue el sistema detecta el siguiente comando% E#EC CICS RELEASE PROGRAM(n$'e) 9 LENGT.ISI2'.. >>>>>>>>>>> 1 *4&E).

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

-----NOPROG. PROGRAM-ID. EXEC CICS !ANDLE CONDITION PGMIDERR(NOPROG) END-EXEC. PROGRAM-ID. MOVE ’INVC’ TO CAMPO1. ‘PROG1’ -----WORKING-STORAGE SECTION. &a opción C233*5E* se agrega al comando 5E . EXEC CICS LINK PROGRAM(‘PROG"’) COMMAREA(TRANSINF) LENGT!(4) END-EXEC. (LLAMADOR) 9999 1? 1i&/ 2/: IDENTIFICATION DIVISION. -------PROCED RE DIVISION. 1 DF!COMMAREA.5E@.(d$t$+ $0ue) &as opciones 5*'SI6 y C233*5E* sólo pueden usarse en programas del m+s alto ni"el lógico.TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS 9999999 PROGRAMA -PROG3. 03 CAMPO1 PIC X(4). QQQQQ rutina de mensaje de programa no encontrado QQQQQ EXEC CICS RET RN END-EXEC.5' de la siguiente manera% E#EC CICS RETURN TRANSID(n$'e) COMMAREA(d$t$+$re$) LENGT. 03 F NCION PIC X(4).5' con !stas opciones en programas $ue no sean del m+s alto ni"el lógico resultar+ en la condición de e-cepción I'. ------PROCED RE DIVISION.ce%ción 6os son las condiciones de e-cepción asociadas con los comandos PCP% COBOLCICSMAIL . Condicione! de E. 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 transacción pseudo con"ersacional. odo intento de emitir el comando 5E . 9999 PROGRAMA -PROG5. -------LINKAGE SECTION. (LLAMADO) IDENTIFICATION DIVISION. 1 TRANSINF. ‘PROG"’.

• Dacilita la transferencia de datos de un programa de aplicación o tarea a otro(a).5' con la opción 5*'SI6.5' o 5E .TALLER DE COBOL CICS UNIDAD IV CONTROL DE PROGRAMAS • • 1E I'. use la opción C233*5E*. • Para transferir datos entre programas de aplicación o tareas. • Para cargar un programa en el siguiente ni"el lógico m+s bajo y transferirle el control. el PCP debe recibir ciertos comandos del programa de aplicación. use )C &. o no puede ser #allado en la PP . El control no retornar+ al programa $ue emitió el )C &. Re!u'en de 0$ unid$d El Programa de Control de Programas (PCP) cumple !stas funciones% • . P: 6istinguir una transacción con er!$cion$0 de una %!eudo+con er!$cion$0/ >>>>>>>>> R: En una transacción con er!$cion$0. use *4E'6 o *4E'6 con *4C26E. • &es transfiere el control. . la memoria $ue re$uieren el programa de aplicación y otras areas de almacenamiento $ue necesita la tarea puede seguir utili0andose durante toda la Jcon"ersaciónK.5' con la opción 5*'SI6. P73I6E55% Se produce un error de identificación de programa si se inacti"a el programa o una tabla. esperando al operador. • Para cargar un programa en el mismo ni"el lógico y transferirle el control. El control retornar+ al programa $ue emitió el &I'(.na transacción %!eudo+ con er!$cion$0 no obstruye la memoria durante el tiempo $ue el operador necesita para tomar decisiones. 5E . Para cumplir a$uellas funciones. Esto se debe al #ec#o de $ue la transacción pseudo con"ersacional se di"ide en dos o mas tareas. Se asume terminación anormal. COBOLCICSMAIL . *s<.sar la opción C233*5E* del comando &I'( o )C &. cada una de las cuales atiende un pedido del operador por "e0. Para terminar un programa.5EC% Se produce un pedido in"+lido cuando en una tarea $ue no es el mas alto ni"el lógico se emite un comando 5E . la tarea puede estar en un estado de espera durante per<odos relati"amente largos de tiempo. P% Cu+l es el m!todo para transferir datos a un programa de aplicación $ue #a sido in"ocado a tra"!s de un comando &I'( o )C &= >>>>>>>> R: . use &I'(. • Para cargar una tabla o un comando use el comando &2*6.bica programas de aplicación y los carga si fuera necesario.