Llamadas directas a MQSeries

Puede utilizar un conjunto de funciones EGL instaladas que actúan como intermediario entre el código y MQSeries, como se describe en la sección Soporte de MQSeries.

La tabla siguiente muestra las funciones disponibles e identifica los argumentos necesarios. MQBACK (MQSTATE), por ejemplo, indica que cuando se invoca MQBACK se pasa un argumento basado en el componente de registro MQSTATE. Los componentes de registro se describen más adelante.

Invocación de funciones EGL relacionadas con MQSeries Efecto
MQBACK (MQSTATE) Invoca la función de sistema sysLib.rollback para retrotraer una unidad lógica de trabajo. La retrotracción afecta a todos los recursos recuperables a los que accede el programa, que incluyen bases de datos, colas de mensajes y archivos recuperables.
MQBEGIN (MQSTATE, MQBO) Inicia una unidad lógica de trabajo.
MQCHECK_COMPLETION (MQSTATE) Establece el campo mqdescription del registro que se basa en MQSTATE. El valor se basa en el código de razón devuelto por última vez. La función MQCHECK_COMPLETION se llama automáticamente desde las funciones EGL MQBEGIN, MQCLOSE, MQCONN, MQCONNX, MQDISC, MQGET, MQINQ, MQOPEN, MQPUT, MQPUT1 y MQSET.
MQCLOSE (MQSTATE) Cierra la cola de mensajes a la que hace referencia MQSTATE.hobj.
MQCMIT (MQSTATE) Invoca la función de sistema sysLib.commit para comprometer una unidad lógica de trabajo. El compromiso afecta a todos los recursos recuperables a los que accede el programa, que incluyen bases de datos, colas de mensajes y archivos recuperables.
MQCONN (MQSTATE, nombreGestorc) Conecta a un gestor de colas, que se identifica mediante nombreGestorc, una serie que puede tener hasta 48 caracteres. MQSeries establece el handle de conexión (MQSTATE.hconn) que se utilizará en las llamadas subsiguientes.
Nota: El código puede conectarse a un gestor de colas a la vez.
MQCONNX(MQSTATE, nombreGestorc, MQCNO) Conecta a un gestor de colas con opciones que controlan la forma en que funciona la llamada. El gestor de colas se identifica mediante nombreGestorc, una serie que puede tener hasta 48 caracteres. MQSeries establece el handle de conexión (MQSTATE.hconn) que se utilizará en las llamadas subsiguientes.
MQDISC (MQSTATE) Desconecta de un gestor de colas.
MQGET(MQSTATE, MQMD, MQGMO, BUFFER) Lee y elimina un mensaje de la cola. El almacenamiento intermedio no puede tener más de 32767 bytes, pero esta restricción no se aplica si se utiliza la sentencia EGL get next.
MQINQ(MQSTATE, MQATTRIBUTES) Solicita atributos de una cola.
MQNOOP() Sólo lo utiliza EGL.
MQOPEN(MQSTATE, MQOD) Abre una cola de mensajes. MQSeries establece el handle de cola (MQSTATE.hobj) que se utilizará en las llamadas subsiguientes.
MQPUT(MQSTATE, MQMD, MQPMO, BUFFER) Añade un mensaje a la cola. El almacenamiento intermedio no puede tener más de 32767 bytes, pero esta restricción no se aplica si se utiliza la sentencia EGL add.
MQPUT1(MQSTATE, MQOD, MQMD, MQPMO, BUFFER) Abre una cola, escribe un único mensaje y cierra la cola.
MQSET(MQSTATE, MQATTRIBUTES) Establece atributos de una cola.

La tabla siguiente muestra los registros de opciones que se utilizan como argumentos cuando se invocan las funciones EGL relacionadas con MQSeries. También se muestra la función de inicialización que debe invocarse para un determinado argumento.

El primer paso es inicializar el argumento que se basa en el componente de registro MQSTATE. En el ejemplo siguiente (como en la tabla que se muestra a continuación), se supone que el nombre del argumento es el mismo que el nombre del componente de registro:
  MQSTATE_INIT(MQSTATE);

Argumento (el nombre del componente de registro) Función de inicialización Descripción
MQATTRIBUTES ninguna Matrices de atributos y selectores de atributos, además de otra información que se utiliza en el mandato MQINQ o MQSET
MQBO MQBO_INIT (MQBO) Opciones de inicio
MQCNO MQCNO_INIT (MQCNO) Opciones de conexión
MQGMO MQGMO_INIT (MQGMO) Opciones de obtención de mensaje
MQIIH MQIIH_INIT (MQIIH) Cabecera de información IMS; describe la información que se necesita al principio de un mensaje MQSeries enviado a IMS (la documentación de MQSeries indica que el uso de esta cabecera no está soportado en Windows 2000/NT/XP)
MQINTATTRS ninguna Matrices de atributos de tipo entero que se utilizarán en el mandato MQINQ o MQSET
MQMD MQMD_INIT (MQMD, MQSTATE) Descriptor de mensaje (MQSeries versión 2)
MQMDE MQMDE_INIT (MQMDE, MQSTATE) Extensión de descriptor de mensaje (utilice solamente los campos que están en MQSeries versión 2)
MQOD MQOD_INIT (MQOD) Descriptor de objeto
MQOO MQOO_INIT (MQOO) Opciones de apertura
MQPMO MQPMO_INIT (MQPMO) Opciones de colocación de mensaje
MQSELECTORS ninguna Una matriz de selectores de atributos, que sólo se utiliza si desea acceder a MQSeries sin utilizar las funciones EGL
MQSTATE MQSTATE_INIT (MQSTATE) Una colección de argumentos cada uno de los cuales se utiliza en una o más llamadas a MQSeries; por ejemplo, cuando se conecta con la función EGL MQCONN o MQCONNX, MQSeries establece el handle de conexión (MQSTATE.hconn) que se utilizará en las llamadas subsiguientes
MQXQH MQXQH_INIT (MQXQH, MQSTATE) Cabecera de cola de transmisión
Nota: Cada componente de registro sólo contiene un elemento de estructura, y el elemento de estructura utiliza un componente de estructura como una typeDef. Esta configuración proporciona una gran flexibilidad. Puede crear sus propios componentes de registro cada uno de los cuales se compone de una serie de componentes de estructura.

El nombre de cada componente de estructura es el nombre del componente de registro seguido de _S; el componente de registro MQGMO, por ejemplo, utiliza un componente de estructura llamado MQGMO_S.

Conceptos relacionados
Palabras clave EGL relacionadas con MQSeries
Soporte de MQSeries
Componentes de registro
Typedef

Consulta relacionada
get next
commit()
rollback()

Condiciones de uso | Comentarios
(C) Copyright IBM Corporation 2000, 2005. Reservados todos los derechos.