28

Click here to load reader

curso CICS

  • Upload
    dexdc

  • View
    169

  • Download
    16

Embed Size (px)

Citation preview

Page 1: curso CICS

Julio 2007Centro Corporativo Regional

Mejores prMejores práácticas en CICS/MQcticas en CICS/MQ

Servicios en Línea

Page 2: curso CICS

2

ContenidoContenido

CICS1.- Evolución de CICS2.- Uso eficiente de Temporary Storage.2.- Como evitar violaciones de memoria3.- Errores más frecuentes y como evitarlos4.- Instrucciones de COBOL que no deben utilizarse en programas CICS5.- Programando para CICSPLEX6.- Uso de comandos THREADSAFE

MQSERIES1.- Recomendaciones para las aplicaciones2.- Modelo de Aplicaciones con uso de MQSeries

Page 3: curso CICS

3

Recurso de CICS llamados Colas.

Administradas por las aplicaciones, creación, uso y borrado.

La utiliza la misma transacción que la creó u otra.

Se ubica en memoria del CICS, disco o memoria dentro de las estructuras de Coupling Facility (CF)

Puede ser compartida o local

Local.- Dentro de la memoria o disco de un mismo CICS

Compartida.- En un CICS de Colas TS (QOR) o en POOLES (estructuras de CF) compartidas entre varios CICS

TemporaryTemporary StorageStorage¿¿QuQuéé son las colas de son las colas de TemporaryTemporary StorageStorage??

Page 4: curso CICS

4

TemporaryTemporary StorageStorage

TEMPORARY STORAGE

PARTICIÓN

CICSAOR

TEMPORARYSTORAGE

CICSQOR

TEMPORARYSTORAGE

TEMPORARY STORAGE

COUPLING FACILITY

Page 5: curso CICS

5

TemporaryTemporary StorageStorage MMééxicoxico

PARTICIÓN

CICSAOR

TEMPORARYSTORAGE

COUPLING FACILITYPOOL01ALTAMIRA

POOL02ALTAMIRA

POOLM01MEDIOS DE PAGO

POOLM02CANALES

Ejemplo: Dependiendo en donde se defina la TSQ podrá ser local ó compartida.

Page 6: curso CICS

6

COUPLING FACILITYPOOL01ALTAMIRA

POOL02ALTAMIRA

POOLM01MEDIOS DE PAGO

POOLM02CANALES

Modelos de Modelos de TemporaryTemporary StorageStorage

TSM (TEMPORARY STORAGE MODELS)

PREFIJO UBICACIÓN

MC POOLM02+SWACN POOLM01PE POOL02B633 POOL01

Page 7: curso CICS

7

Pase de datos entre programas o transacciones. Mejor utilizar COMMAREA

Información que requiere ser compartida (SHARED) entre transacciones que se ejecutan en otro CICS.

CARACTERISTICAS

PERMANENCIA: el tiempo de permanencia de las colas debe ser mínima.

La transacción que la crea debe borrarla antes de terminar.

Si la cola va a ser utilizada por varias transacciones, la última en utilizarla debe borrarla.

La aplicación debe contar con un mecanismo automático para el borrado de colas que ya no se van a utilizar.

CaracterCaracteríísticas de sticas de TemporaryTemporary StorageStorage

Page 8: curso CICS

8

CONTENIDO

No utilizar en forma indiscriminada

No guardar información con dependencia aplicativa

No deben contener TRACES, ni utilizarse para depuración o despliegue de flujo de programas

TAMAÑO:

Longitud de la cola.

Cantidad de colas generadas.

UtilizaciUtilizacióón de colas de n de colas de TemporaryTemporary StorageStorage

Page 9: curso CICS

9

NOMENCLATURA

Prefijo con nombre de la aplicación que la genera

No contener espacios, caracteres especiales o hexadecimales

No utilizar sufijos (ej. xxxxLBMR

UtilizaciUtilizacióón de colas de n de colas de TemporaryTemporary StorageStorage

Page 10: curso CICS

10

VIOLACIONES DE MEMORIA VIOLACIONES DE MEMORIA ¿¿QUQUÉÉ SON?SON?

Las violaciones de memoria se originan cuando un programa escribe sobre áreas de memoria que no le pertenecen.

Se pueden dividir en 3 tipos:•Entre campos propios en un mismo programa, por ejemplo: MOVE A TO B en donde B está definido como de menor tamaño, al hacer este movimiento la información se escribe sobre la siguiente área definida.

•Traslape de datos sobre el área del programa, por ejemplo MOVE A TO B en donde B es un campo de LINKAGE SECTION (normalmente la COMMAREA) y también está definido de menor tamaño. Al hacer este movimiento los datos traslapan la parte inicial del programa ocasionando un abend 0C4 al tratar de ejecutarse.

•Traslape de datos sobre área de otra transacción.

Page 11: curso CICS

11

VIOLACIONES DE MEMORIAVIOLACIONES DE MEMORIA

SAA SAA

SAA = System Accounting Area (dirección de memoria, tamaño)

MANEJO DE MEMORIA EN CICS

CICS utiliza una SAA al principio del área y otra al final

Ejemplo: 07 A PIC X(10).07 B PIC X(12).

MOVE A TO B.

SAA SAA

SAA SAA

10

12

Page 12: curso CICS

12

Ejemplo:

07 A PIC X(10).07 B PIC X(12).

MOVE B TO A.

SAA SAA

SAA SAA

10

12

VIOLACIÓN DE MEMORIA

VIOLACIONES DE MEMORIAVIOLACIONES DE MEMORIA

Page 13: curso CICS

13

Al liberar la memoria utilizada CICS compara la SAA de inicio con la final.

SAA SAA

IGUALES OKSI

NO

VIOLACION DE MEMORIA

SAA SAA

VIOLACIONES DE MEMORIAVIOLACIONES DE MEMORIA

Page 14: curso CICS

14

VIOLACIONES DE MEMORIAVIOLACIONES DE MEMORIAEFECTOSEFECTOS

DEPENDE DEL NIVEL DE PROTECCIÓN DEL CICS

Protección del código CICSCaídas de CICSWaits de CICSCICS en LOOP

Protección entre transaccionesAbend ASRA (0C1, 0C4) de transaccionesDetección al liberar CICS la memoriaCICS no detecta algunas violaciones dentro de un mismo

programa

Page 15: curso CICS

15

ERRORES MERRORES MÁÁS FRECUENTESS FRECUENTESY COMO EVITARLOSY COMO EVITARLOS

ABENDS MÁS FRECUENTES

USO DE VARIABLES DEPENDIENTES DEL SISTEMA OPERATIVO

VARÍAN DE ACUERDO AL SISTEMA OPERATIVO. EN SU LUGAR UTILIZAR VARIABLES PROPIAS DE CICS

Page 16: curso CICS

16

INSTRUCCIONES QUE NO DEBEN UTILIZARSEINSTRUCCIONES QUE NO DEBEN UTILIZARSE

ACCEPTDISPLAYACCESO DIRECTO A ARCHIVOS (OPEN,CLOSE)SORTUSO DE INTERNAL READERSMENSAJES ENVIADOS AL SYSOUT DE CICS

Page 17: curso CICS

17

RECOMENDACIONES PROGRAMACIRECOMENDACIONES PROGRAMACIÓÓNN

USO DE INSTRUCCIONES SENCILLAS

EVITAR PAGINACIÓNMANTENER LA EJECUCIÓN DEL PROGRAMA LO MAS

LINEAR POSIBLE.USO DE RUTINAS O SUBRUTINAS LO MÁS CERCANO AL

LLAMADORMANTENER LAS RUTINAS DE ERROR FUERA DEL FLUJO

PRINCIPAL DEL PROGRAMA

INSTRUCCIONES QUE PROVOCAN “ESPERAS” (waits) POR EL SISTEMA OPERATIVO.

WRITE TO OPERATORDESTINOS EXTRAPARTITION

Page 18: curso CICS

18

EVITAR AFINIDADES

NO UTILIZAR ‘CODIGO DURO’

USO DE ENQUEUES

RETENER EL ENQUEUE EL MENOR TIEMPO POSIBLE, DAR EL DEQUEUE DE INMEDIATO

RECOMENDACIONES PROGRAMACIRECOMENDACIONES PROGRAMACIÓÓNN

Page 19: curso CICS

19

CICSPLEX: CONJUNTO DE CICS RELACIONADOS ENTRE SI

EJEMPLOS: TOR-AOR, TOR-AORES, AOR-QOR, etc.

CICSplex es un conjunto de CICSCICSPlex producto que ayuda al balanceo de carga

CICXXX1

CICXXX11

CICXXX21

CICXYX11

CICSPLEXCICSPLEX¿¿QUE ES UN CICSPLEX?QUE ES UN CICSPLEX?

Page 20: curso CICS

20

PROGRAMANDO PARA CICSPLEXPROGRAMANDO PARA CICSPLEX

RECURSOS LOCALES Y COMPARTIDOS

NO UTILIZAR ‘CODIGO DURO’NO CREAR AFINIDADES HACIA UN SOLO CICS

LECTURA/ESCRITURA DE COLAS TS COMPARTIDAS

LECTURA: MANTENER UN COPIA LOCAL EN CADA CICSESCRITURA: USO DE ENQUEUE/DEQUEUE PARA

MANTENER LA INTEGRIDAD DE LOS DATOS

Page 21: curso CICS

21

¿¿QUE ES THREADSAFE?QUE ES THREADSAFE?

EL PROCESAMIENTO DE LAS TRANSACCIONES UTILIZAN LA TCB QR

La TCB QR atiende un solo programa a la vez.Da control a CICS cuando hay un requerimiento al sistema

operativo.No permite proceso paralelo.

USO DE OTRAS TCB’sUtiliza otras TCB’s las cuales permiten el proceso paralelo.

La TCB L8 la utiliza también DB2.

PROGRAMAS THREADSAFEUtilizan la TCB L8 Ahorro en CPU

Page 22: curso CICS

22

QUASIRENT QUASIRENT vsvs THREADSAFETHREADSAFE

HANDLEIGNOREREADQSELECT

TCB QR

SELECTIGNORE

TCB L8

IGNOREHANDLEWRITEQUPDATE UPDATE

READQREADQSELECT SELECT

BROWSEBROWSEENQ DEQ

HANDLEIGNOREREADQSELECT

TCB L8

IGNOREHANDLEWRITEQUPDATE READQSELECT

ENQ DEQ

•SE MINIMIZA LA CONMUTACIÓN DE TCB•AHORRO EN CONSUMO DE CPU

QUASIRENT THREADSAFE

• CONMUTACIÓN CONSTANTE DE TCB’S• INCREMENTO EN CONSUMO DE CPU

Page 23: curso CICS

23

COMANDOS THREADSAFECOMANDOS THREADSAFE

ABENDADDRESSASSIGNDELETEQ TSDEQ ENQENTRE TRACENUMFREEMAINGETMAINHANDLE AIDHANDLE CONDITIONIGNORE CONDITIONLINK

LOADMONITORPOP HANDLEPUSH HANDLEREADQ TSRELEASERETURNSUSPENDWAIT EXTERNALWRITEQ TSXCTL

Page 24: curso CICS

24

USO COMANDOS NO THREADSAFEUSO COMANDOS NO THREADSAFE

TCB QR

BROWSE

•SE MANTIENE EN LA TCB L8 HASTA QUEDETECTA UN COMANDO NO THREADSAFE

HANDLEIGNOREREADQSELECT

TCB L8

IGNOREHANDLEWRITEQUPDATE READQSELECT BROWSE

ENQ DEQ

QUASIRENT THREADSAFE

• LOS COMANDOS NO THREADSAFE SEPROCESAN EN LA TCB QR

ENQ

Page 25: curso CICS

25

MQSERIES: RECOMENDACIONESMQSERIES: RECOMENDACIONES

•Diseño lo más sencillo posible para que su administración y posterior soporte sean más accesibles para todos.

•Criticidad y nivel de servicio de la aplicación.

•Involucrar a capacity planning, para prevenir que el servicio pueda ser soportado en el equipo.

•Definir el esquema de respaldo y contingencia aplicativo.

•El MQ no hará conversión de datos ni formateo de los mismos, es decir, si la aplicación servidora solo recibe formato PC9), la aplicación cliente deberá enviar los datos en este formato. El MQ solo realiza la conversión de ASCII a EBCDIC bajo los estándares internacionales. El manejo de caracteres especiales debe ser controlado por la aplicación.

Page 26: curso CICS

26

MQSERIESMQSERIES

•La aplicación deberá manejar los mensajes con PERSISTENCIA solo cuando lo requieran.

•La aplicación deberá manejar la EXPIRACIÓN.

OTRAS CONSIDERACIONES

•Probar todas las funciones y servicios antes de su liberación. •En aplicaciones nuevas, el MQSERIES deberá estar instalado con el último nivel de mantenimiento..

Page 27: curso CICS

27

MQSERIESMQSERIES

MODELO DE UTILIZACIÓN

El modelo más eficiente y robusto de MQSERIES es el de SERVER TO SERVER utilizando CICSBRIDGE.

Las excepciones a este modelo deberán ser analizadas y autorizadas por infraestructura MQ.

Page 28: curso CICS

28

MQSERIESMQSERIES

EJEMPLO MODELO SERVER TO SERVER:

ServerTCPWeb

Sphere Cliente

Canales

MQSeriesServer

TCP CICSTOR

CICSAOR1

CICSBRIDGE

SDR RCVR

putSDRRCVR

get

SDR RCVR

. putSDRRCVR

get

Instancia 1Instancia 2

CTE Conn – SVR Conn

Instancia 3Instancia 4

CTE Conn – SVR Conn

DB2

get

get

put

put

AIX1 HOST

MQSeries