Los archivos serie deben implementarse como colas de mensajes IMS en IMS/VS. En BMP IMS, pueden implementarse como colas de mensajes, archivos OS/VS, archivos VSAM o archivos GSAM. En z/OS por lotes, los archivos serie pueden implementarse como archivos OS/VS, archivos VSAM o archivos GSAM. La descripción que sigue trata de la utilización de archivos GSAM o colas de mensajes para archivos serie.
Los programas en línea que se ejecutan en IMS/VS implementan archivos serie como colas de mensajes IMS. Los programas que se ejecutan como programas BMP IMS también pueden implementar archivos serie como colas de mensajes. Puede utilizar las sentencias de E/S add, get next y close para los archivos de salida. Si selecciona IMS/VS o BMP IMS como entorno de ejecución destino, puede definir archivos serie o de impresión como asociados a una cola de mensajes. Debe asociar todos los archivos serie y archivos de impresión con colas de mensajes para IMS/VS. Sólo puede asociarse un único archivo de entrada con la cola de mensajes.
Debe indicar el ID de destino de 1 a 8 caracteres para datos de archivo de impresora o de serie. El nombre debe coincidir con el ID de un terminal lógico IMS o un código de transacción definido en la definición del sistema IMS.
El nombre de archivo es el nombre de recurso por omisión para la cola de mensajes. Puede alterar temporalmente este valor por omisión en el componente de asociaciones de recurso.
Si el PCB que selecciona es un PCB alternativo modificable o alternativo express, puede alterar temporalmente el nombre de cola de mensajes por omisión durante la ejecución estableciendo un valor para sysVar.resourceAssociation para un archivo o converseVar.printerAssociation para una impresora en el programa. sysVar.resourceAssociation se trata como variable local. El establecimiento de sysVar.resourceAssociation para un registro de un programa no afecta a sysVar.resourceAssociation en otro programa. Una sentencia add graba en la cola de mensajes identificada por el valor de sysVar.resourceAssociation de ese programa.
En colas de mensajes de varios segmentos, una serie de adiciones al archivo serie se trata como si cada sentencia add fuera para un segmento de un solo mensaje. El mensaje no finaliza hasta que se emite una sentencia close o se alcanza un punto de compromiso. El programa COBOL generado emite una llamada IMS PURG para la sentencia close. A continuación, puede empezar a añadir segmentos de otro mensaje y cerrarlo. Las colas de mensajes de varios segmentos no son válidas para archivos de impresión.
Si emite una sentencia get next para un archivo serie MMSGQ, el programa generado emite una llamada IMS get unique para obtener el primer segmento del mensaje. Las sentencias get next adicionales provocan llamadas GN para obtener el resto de segmentos del mensaje. Al final de todos los segmentos de un mensaje, el programa COBOL generado establece el estado de registro noRecordFound. Si continúa la exploración, el programa generado iniciará otra serie de llamadas get unique (GU), seguidas de llamadas get next (GN). Cuando no se encuentren más mensajes, el programa generado devolverá un estado endOfFile (fin de archivo).
También debe especificar un nombre de PCB para el archivo serie que se asocia con una cola de mensajes. Debe especificar el nombre asignado al PCB de I/O como el nombre de PCB para un archivo de entrada serie. El PCB de E/S solo es la cola de mensajes utilizada para la entrada. Si utiliza un archivo de entrada serie, debe utilizar un programa principal por lotes o un programa por lotes llamado. El programa generado maneja toda la lógica de PCB de E/S para programas principales de transacción.
Al definir un registro serie para asociarlo con una cola de mensajes, debe definir sólo los datos de programa. El programa COBOL generado añade la cabecera de mensaje IMS (longitud, ZZ y código de transacción) para una sentencia add y la elimina para una sentencia get next.
En IMS/VS, debe asociar archivos de impresión con colas de mensajes. En BMP IMS, puede asociar archivos de impresión con colas de mensajes. Puede asociar archivos de impresión con colas de mensajes de la misma forma que asocia archivos serie con colas de mensajes, con la excepción de que SMSGQ es el único tipo de archivo válido para una asociación de recursos cuyo nombre de archivo sea printer. En la definición del sistema IMS, debe definir el nombre de cola de mensajes que desea utilizar en el entorno de ejecución como terminal lógico. Puede utilizarse converseVar.printerAssociation para cambiar el destino de impresora durante la ejecución. Por ejemplo, puede definir una tabla de ID de usuario y el ID de impresora que cada usuario utiliza habitualmente. Estableciendo converseVar.printerAssociation, puede direccionar la salida de impresora a una impresora cercana al usuario del programa.
Conceptos relacionados
Soporte de bases de datos DL/I
Tipos de registros y propiedades
Segmentación en programas de textUI
Consulta relacionada
add
converse
converseVar.printerAssociation
close
get
sysVar.resourceAssociations
Tareas relacionadas
Interactuar con terminales en IMS