Vous êtes sur la page 1sur 28

Julio 2007

Centro Corporativo Regional


Mejores pr
Mejores pr

cticas en CICS/MQ
cticas en CICS/MQ
Servicios en Lnea
2
Contenido
Contenido
CICS
1.- Evolucin de CICS
2.- Uso eficiente de Temporary Storage.
2.- Como evitar violaciones de memoria
3.- Errores ms frecuentes y como evitarlos
4.- Instrucciones de COBOL que no deben utilizarse en programas
CICS
5.- Programando para CICSPLEX
6.- Uso de comandos THREADSAFE
MQSERIES
1.- Recomendaciones para las aplicaciones
2.- Modelo de Aplicaciones con uso de MQSeries
3
Recurso de CICS llamados Colas.
Administradas por las aplicaciones, creacin, uso y
borrado.
La utiliza la misma transaccin 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
Temporary
Temporary
Storage
Storage

Qu
Qu

son las colas de


son las colas de
Temporary
Temporary
Storage
Storage
?
?
4
Temporary
Temporary
Storage
Storage
TEMPORARY
STORAGE
PARTICIN
CICS
AOR
TEMPORARY
STORAGE
CICS
QOR
TEMPORARY
STORAGE
TEMPORARY
STORAGE
COUPLING
FACILITY
5
Temporary
Temporary
Storage
Storage
M
M

xico
xico
PARTICIN
CICS
AOR
TEMPORARY
STORAGE
COUPLING FACILITY
POOL01
ALTAMIRA
POOL02
ALTAMIRA
POOLM01
MEDIOS
DE PAGO
POOLM02
CANALES
Ejemplo: Dependiendo en donde se defina la TSQ podr ser local compartida.
6
COUPLING FACILITY POOL01
ALTAMIRA
POOL02
ALTAMIRA
POOLM01
MEDIOS
DE PAGO
POOLM02
CANALES
Modelos de
Modelos de
Temporary
Temporary
Storage
Storage
TSM (TEMPORARY STORAGE MODELS)
PREFIJO UBICACIN
MC POOLM02
+SWA
CN POOLM01
PE POOL02
B633 POOL01
7
Pase de datos entre programas o transacciones.
Mejor utilizar COMMAREA
Informacin que requiere ser compartida (SHARED) entre
transacciones que se ejecutan en otro CICS.
CARACTERISTICAS
PERMANENCIA: el tiempo de permanencia de las colas debe ser
mnima.
La transaccin 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 aplicacin debe contar con un mecanismo automtico para el
borrado de colas que ya no se van a utilizar.
Caracter
Caracter

sticas de
sticas de
Temporary
Temporary
Storage
Storage
8
CONTENIDO
No utilizar en forma indiscriminada
No guardar informacin con dependencia aplicativa
No deben contener TRACES, ni utilizarse para depuracin o
despliegue de flujo de programas
TAMAO:
Longitud de la cola.
Cantidad de colas generadas.
Utilizaci
Utilizaci

n de colas de
n de colas de
Temporary
Temporary
Storage
Storage
9
NOMENCLATURA
Prefijo con nombre de la aplicacin que la genera
No contener espacios, caracteres especiales o hexadecimales
No utilizar sufijos (ej. xxxxLBMR
Utilizaci
Utilizaci

n de colas de
n de colas de
Temporary
Temporary
Storage
Storage
10
VIOLACIONES DE MEMORIA VIOLACIONES DE MEMORIA QU QU 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
tamao, al hacer este movimiento la informacin 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 tambin est definido de
menor tamao. 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 transaccin.
11
VIOLACIONES DE MEMORIA VIOLACIONES DE MEMORIA
SAA SAA
SAA = System Accounting Area (direccin de memoria, tamao)
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
VIOLACIN DE MEMORIA
VIOLACIONES DE MEMORIA VIOLACIONES DE MEMORIA
13
Al liberar la memoria utilizada CICS compara la SAA de
inicio con la final.
SAA SAA
IGUALES
OK
SI
NO
VIOLACION DE MEMORIA
SAA SAA
VIOLACIONES DE MEMORIA VIOLACIONES DE MEMORIA
14
VIOLACIONES DE MEMORIA VIOLACIONES DE MEMORIA
EFECTOS EFECTOS
DEPENDE DEL NIVEL DE PROTECCIN DEL CICS
Proteccin del cdigo CICS
Cadas de CICS
Waits de CICS
CICS en LOOP
Proteccin entre transacciones
Abend ASRA (0C1, 0C4) de transacciones
Deteccin al liberar CICS la memoria
CICS no detecta algunas violaciones dentro de un mismo
programa
15
ERRORES M ERRORES M S FRECUENTES S FRECUENTES
Y COMO EVITARLOS Y COMO EVITARLOS
ABENDS MS FRECUENTES
USO DE VARIABLES DEPENDIENTES DEL SISTEMA
OPERATIVO
VARAN DE ACUERDO AL SISTEMA OPERATIVO. EN SU LUGAR
UTILIZAR VARIABLES PROPIAS DE CICS
16
INSTRUCCIONES QUE NO DEBEN UTILIZARSE INSTRUCCIONES QUE NO DEBEN UTILIZARSE
ACCEPT
DISPLAY
ACCESO DIRECTO A ARCHIVOS (OPEN,CLOSE)
SORT
USO DE INTERNAL READERS
MENSAJES ENVIADOS AL SYSOUT DE CICS
17
RECOMENDACIONES PROGRAMACI RECOMENDACIONES PROGRAMACI N N
USO DE INSTRUCCIONES SENCILLAS
EVITAR PAGINACIN
MANTENER LA EJECUCIN DEL PROGRAMA LO MAS
LINEAR POSIBLE.
USO DE RUTINAS O SUBRUTINAS LO MS CERCANO AL
LLAMADOR
MANTENER LAS RUTINAS DE ERROR FUERA DEL FLUJO
PRINCIPAL DEL PROGRAMA
INSTRUCCIONES QUE PROVOCAN ESPERAS (waits) POR EL
SISTEMA OPERATIVO.
WRITE TO OPERATOR
DESTINOS EXTRAPARTITION
18
EVITAR AFINIDADES
NO UTILIZAR CODIGO DURO
USO DE ENQUEUES
RETENER EL ENQUEUE EL MENOR TIEMPO POSIBLE, DAR
EL DEQUEUE DE INMEDIATO
RECOMENDACIONES PROGRAMACI RECOMENDACIONES PROGRAMACI N N
19
CICSPLEX: CONJUNTO DE CICS RELACIONADOS ENTRE SI
EJEMPLOS: TOR-AOR, TOR-AORES, AOR-QOR, etc.
CICSplex es un conjunto de CICS
CICSPlex producto que ayuda al balanceo de carga
CICXXX1
CICXXX11
CICXXX21
CICXYX11
CICSPLEX CICSPLEX
QUE ES UN CICSPLEX? QUE ES UN CICSPLEX?
20
PROGRAMANDO PARA CICSPLEX PROGRAMANDO 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 CICS
ESCRITURA: 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 TCBs
Utiliza otras TCBs las cuales permiten el proceso paralelo.
La TCB L8 la utiliza tambin DB2.
PROGRAMAS THREADSAFE
Utilizan la TCB L8
Ahorro en CPU
22
QUASIRENT QUASIRENT vs vs THREADSAFE THREADSAFE
HANDLE
IGNORE
READQ
SELECT
TCB QR
SELECT
IGNORE
TCB L8
IGNORE
HANDLE
WRITEQ
UPDATE
UPDATE
READQ
READQ
SELECT
SELECT
BROWSE
BROWSE
ENQ
DEQ
HANDLE
IGNORE
READQ
SELECT
TCB L8
IGNORE
HANDLE
WRITEQ
UPDATE
READQ
SELECT
ENQ
DEQ
SE MINIMIZA LA CONMUTACIN DE TCB
AHORRO EN CONSUMO DE CPU
QUASIRENT
THREADSAFE
CONMUTACIN CONSTANTE DE TCBS
INCREMENTO EN CONSUMO DE CPU
23
COMANDOS THREADSAFE COMANDOS THREADSAFE
ABEND
ADDRESS
ASSIGN
DELETEQ TS
DEQ
ENQ
ENTRE TRACENUM
FREEMAIN
GETMAIN
HANDLE AID
HANDLE CONDITION
IGNORE CONDITION
LINK
LOAD
MONITOR
POP HANDLE
PUSH HANDLE
READQ TS
RELEASE
RETURN
SUSPEND
WAIT EXTERNAL
WRITEQ TS
XCTL
24
USO COMANDOS NO THREADSAFE USO COMANDOS NO THREADSAFE
TCB QR
BROWSE
SE MANTIENE EN LA TCB L8 HASTA QUE
DETECTA UN COMANDO NO THREADSAFE
HANDLE
IGNORE
READQ
SELECT
TCB L8
IGNORE
HANDLE
WRITEQ
UPDATE
READQ
SELECT
BROWSE
ENQ
DEQ
QUASIRENT
THREADSAFE
LOS COMANDOS NO THREADSAFE SE
PROCESAN EN LA TCB QR
ENQ
25
MQSERIES: RECOMENDACIONES MQSERIES: RECOMENDACIONES
Diseo lo ms sencillo posible para que su
administracin y posterior soporte sean ms accesibles
para todos.
Criticidad y nivel de servicio de la aplicacin.
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 conversin de datos ni formateo de los
mismos, es decir, si la aplicacin servidora solo recibe
formato PC9), la aplicacin cliente deber enviar los
datos en este formato. El MQ solo realiza la conversin
de ASCII a EBCDIC bajo los estndares internacionales.
El manejo de caracteres especiales debe ser controlado
por la aplicacin.
26
MQSERIES MQSERIES
La aplicacin deber manejar los mensajes con
PERSISTENCIA solo cuando lo requieran.
La aplicacin deber manejar la EXPIRACIN.
OTRAS CONSIDERACIONES
Probar todas las funciones y servicios antes de su liberacin.
En aplicaciones nuevas, el MQSERIES deber estar instalado con
el ltimo nivel de mantenimiento.
.
27
MQSERIES MQSERIES
MODELO DE UTILIZACIN
El modelo ms eficiente y robusto de MQSERIES es el de SERVER
TO SERVER utilizando CICSBRIDGE.
Las excepciones a este modelo debern ser analizadas y
autorizadas por infraestructura MQ.
28
MQSERIES MQSERIES
EJEMPLO MODELO SERVER TO SERVER:
Server
TCP
Web
Sphere Cliente
Canales
MQSeries
Server
TCP
CICS
TOR
CICS
AOR1
CICS
BRIDGE
SDR RCVR
put
SDR
RCVR
get
SDR RCVR
.
put
SDR
RCVR
get
Instancia 1
Instancia 2
CTE Conn SVR Conn
Instancia 3
Instancia 4
CTE Conn SVR Conn
DB2
get
get
put
put
AIX1
HOST
MQSeries

Vous aimerez peut-être aussi