Click here to load reader
Upload
dexdc
View
169
Download
16
Embed Size (px)
Citation preview
Julio 2007Centro Corporativo Regional
Mejores prMejores práácticas en CICS/MQcticas en CICS/MQ
Servicios en Línea
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
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??
4
TemporaryTemporary StorageStorage
TEMPORARY STORAGE
PARTICIÓN
CICSAOR
TEMPORARYSTORAGE
CICSQOR
TEMPORARYSTORAGE
TEMPORARY STORAGE
COUPLING FACILITY
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.
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
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
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
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
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.
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
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
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
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
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
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
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
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
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?
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
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
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
23
COMANDOS THREADSAFECOMANDOS THREADSAFE
ABENDADDRESSASSIGNDELETEQ TSDEQ ENQENTRE TRACENUMFREEMAINGETMAINHANDLE AIDHANDLE CONDITIONIGNORE CONDITIONLINK
LOADMONITORPOP HANDLEPUSH HANDLEREADQ TSRELEASERETURNSUSPENDWAIT EXTERNALWRITEQ TSXCTL
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
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.
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..
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.
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