Llamar a un programa IMS desde código Java generado por EGL

Puede llamar a un programa IMS remotamente, desde código Java generado por EGL. El programa llamado puede generarse a partir de EGL o VisualAge Generator o puede escribirse en otro lenguaje.

El programa al que se accede en IMS no es el mismo programa llamado, sino un programa capturador proporcionado por Enterprise Developer Server para z/OS. Tal como se muestra más tarde, el programador del sistema debe reenlazar ese programa capturador. El efecto de esa tarea es asignar un alias para cada PSB de tiempo de ejecución asociado con cualesquiera transacciones invocadas remotamente por código Java generado por EGL.

El proceso de tiempo de ejecución es el siguiente:
  1. El tiempo de ejecución EGL toma el nombre del código de transacción IMS del componente de opciones de enlace utilizado en tiempo de generación del programa de llamada.
  2. EGL utiliza los conectores de IMS Connect para someter este código de transacción, así como el nombre y los parámetros del programa llamado a la cola de mensajes de IMS.
  3. El programa capturador lee el nombre del programa llamado y los parámetros de esta cola de mensajes y utiliza una llamada de z/OS para invocar el programa solicitado
  4. Al volver a ganar el control, el programa capturador somete los datos devueltos a la cola IMS
  5. IMS Connect lee los datos de la cola y devuelve los datos al programa llamante
A continuación se ofrece un ejemplo:
  1. En IMS, el programador de sistemas lleva a cabo las tareas siguientes:
    1. Crea una definición de sistema que asocia una transacción (por ejemplo, TRAN1) con un PSB (por ejemplo, PSB1).
    2. Enlaza el programa capturador ELAISVN para asignarle el alias PSB1. El enlace puede incluir hasta 64 alias de esta especie y el nombre del módulo puede ser cualquiera. Si desea más de 64 alias, cree un segundo módulo de carga.
  2. Puede poner una sentencia en el programa Java para llamar a PGMX y para proporcionar parámetros para ese programa.
  3. En el descriptor de construcción utilizado para generar el programa, puede establecer la opción del descriptor de construcción linkage en un componente de opciones de enlace llamado pgmLinkage
  4. En ese componente de opciones de enlace para el programa PGMX, puede establecer el elemento callLink, propiedad serverID, en el código de transacción adecuado (en este casos, TRAN1.)
  5. En tiempo de ejecución, IMS Connect envía el código de transacción (TRAN1), nombre de programa (PGMX) y los parámetros a la cola de mensajes IMS.
  6. Puesto que se ha invocado TRAN1, IMS planifica PSB1 que inicia el programa capturador.
  7. El programa capturador lee la cola de mensajes para el nombre del programa (PGMX) y los parámetros y después llama a PGMX.
  8. Cuando PGMX finaliza, el control vuelve al programa capturador, que sitúa los datos devueltos en la cola de mensajes de IMS.
  9. IMS Connect devuelve los datos al código Java.
La transacción TRAN1 debe definirse en IMS como un programa de proceso de mensajes. Utilice la definición de sistema IMS siguiente como modelo:
APPLCTN PGMTYPE=TP,PSB=PSB1
TRANSACT CODE=TRAN1,MODE=SNGL,EDIT=ULC

Los datos se plegarán en caracteres en mayúscula si se omite la sentencia EDIT=ULC en la definición de transacción.

A continuación se proporciona un ejemplo del JCL que el programador del sistema puede utilizar para reenlazar el ELAISVN del programa capturador, en este caso para asignar los alias PSB1 y PSB2:
//L    EXEC ELARLINK 
//L.SYSLMOD DD DISP=SHR,DSN=nombre-biblioteca-carga
//L.SYSIN DD * 
INCLUDE SELALMD(ELAISVN) 
ENTRY ELAISVN 
ALIAS PSB1
ALIAS PSB2
NAME nombre-módulo-carga(R)
/* 
nombre-biblioteca-carga
Nombre de la biblioteca de carga
nombre-módulo-carga
Nombre del módulo de carga; normalmente ELAISVN
IMS necesita que el nombre de un PSB de tiempo de ejecución sea idéntico al nombre (o, en este caso, el alias) del primer programa de una transacción. Si desea que se llame al programa llamado, no solo desde el código remoto, sino que en otra transacción de IMS, debe hacer lo siguiente:
  1. Cree un segundo PSB denominado para el primer programa de la transacción
  2. Estructure el PSB igual que el PSB planificado para la invocación remota

Conceptos relacionados
Soporte de EGL para PSB y PCB de tiempo de ejecución
Soporte de entorno de ejecución IMS
Componente de opciones de enlace

Consulta relacionada
Elemento callLink

Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.