Gestión de objetos para desencadenamiento

Estos ejemplos muestran cómo iniciar una aplicación automáticamente cuando se cumplen determinadas condiciones en una cola. Por ejemplo, es posible que desee iniciar una aplicación cuando el número de mensaje de una cola alcanza un número especificado. Este recurso se denomina desencadenamiento. Deberá definir los objetos que dan soporte al desencadenamiento.

Antes de empezar

Nota: Estos ejemplos requieren que ejecute mandatos MQSC. El modo de hacerlo varía según la plataforma. Consulte Administración de IBM® MQ utilizando mandatos MQSC.
Estos ejemplos se escriben con caracteres de separador de vía de acceso de estilo UNIX .

Acerca de esta tarea

Para obtener una descripción detallada del desencadenamiento, consulte Inicio de aplicaciones IBM MQ utilizando desencadenantes.

Procedimiento

  • Definir una cola de aplicación para el desencadenamiento.

    Una cola de aplicación es una cola local que las aplicaciones utilizan para el envío de mensajes, mediante la MQI. El desencadenamiento requiere definir varios atributos de cola en la cola de aplicación.

    La activación en sí se habilita mediante el atributo Trigger (TRIGGER en los mandatos MQSC). En este ejemplo, se va a generar un suceso desencadenante cuando haya 100 mensajes con una prioridad 5 o superior en la cola local MOTOR.INSURANCE.QUEUE, como se indica a continuación:
    DEFINE QLOCAL (MOTOR.INSURANCE.QUEUE) +
    PROCESS (MOTOR.INSURANCE.QUOTE.PROCESS) +
    MAXMSGL (2000) +
    DEFPSIST (YES) +
    INITQ (MOTOR.INS.INIT.QUEUE) +
    TRIGGER +
    TRIGTYPE (DEPTH) +
    TRIGDPTH (100)+
    TRIGMPRI (5)
    
    donde:
    QLOCAL (MOTOR.INSURANCE.QUEUE)
    Es el nombre de la cola de aplicación que se define.
    PROCESS (MOTOR.INSURANCE.QUOTE.PROCESS)
    Es el nombre de la definición de proceso que describe la aplicación que se va a iniciar mediante un programa supervisor desencadenante.
    MAXMSGL (2000)
    Especifica la longitud máxima de los mensajes de la cola.
    DEFPSIST (YES)
    Especifica que los mensajes de esta cola son persistentes de forma predeterminada.
    INITQ (MOTOR.INS.INIT.QUEUE)
    Es el nombre de la cola de inicio a la que el gestor de colas va a transferir el mensaje desencadenante.
    TRIGGER
    Es el valor del atributo de desencadenamiento.
    TRIGTYPE (DEPTH)
    Especifica que se genera un suceso desencadenante cuando el número de mensajes de la prioridad obligatoria (TRIGMPRI) alcanza el número especificado en TRIGDPTH.
    TRIGDPTH (100)
    Especifica el número de mensajes necesarios para generar un suceso desencadenante.
    TRIGMPRI (5)
    Es la prioridad de los mensajes que el gestor de colas va a incluir en el recuento para decidir si va a generar un suceso desencadenante. Sólo se incluyen en el recuento los mensajes con prioridad 5 o superior.
  • Definir una cola de inicio
    Cuando se produce un suceso desencadenante, el gestor de colas coloca un mensaje desencadenante en la cola de inicio especificada en la definición de la cola de aplicación. Las colas de inicio no tienen valores especiales, pero puede utilizar como guía la siguiente definición de la cola local MOTOR.INS.INIT.QUEUE:
    DEFINE QLOCAL(MOTOR.INS.INIT.QUEUE) +
    GET (ENABLED) +
    NOSHARE +
    NOTRIGGER +
    MAXMSGL (2000) +
    MAXDEPTH (1000)
    
  • Definir un proceso
    Utilice el mandato DEFINE PROCESS para crear una definición de proceso. Una definición de proceso define la aplicación que se va a utilizar para procesar los mensajes de la cola de aplicación. La definición de cola de aplicación nombra el proceso que se va a utilizar y, de este modo, asocia la cola de aplicación con la aplicación que se va a utilizar para procesar sus mensajes. Esto se hace mediante el atributo PROCESS en la cola de aplicación MOTOR.INSURANCE.QUEUE. El siguiente mandato MQSC define el proceso necesario, MOTOR.INSURANCE.QUOTE.PROCESS, identificado en este ejemplo:
    DEFINE PROCESS (MOTOR.INSURANCE.QUOTE.PROCESS) +
    DESCR ('Insurance request message processing') +
    APPLTYPE (UNIX) +
    APPLICID ('/u/admin/test/IRMP01') +
    USERDATA ('open, close, 235')
    
    Donde:
    MOTOR.INSURANCE.QUOTE.PROCESS
    Es el nombre de la definición de proceso.
    DESCR ('Insurance request message processing')
    Describe el programa de aplicación relacionado con esta definición. Este texto Aparece cuando utiliza el mandato DISPLAY PROCESS y sirve para ayudarle a identificar lo que hace el proceso. Si utiliza espacios en la serie, debe colocarla entre comillas simples.
    APPLTYPE (UNIX)
    Es el tipo de aplicación que debe iniciarse.
    APPLICID ('/u/admin/test/IRMP01')
    Es el nombre del archivo ejecutable de la aplicación, especificado como nombre de archivo totalmente calificado. En sistemas Windows, un valor típico de APPLICID sería c:\appl\test\irmp01.exe.
    USERDATA ('open, close, 235')
    Son datos definidos por el usuario, que la aplicación puede utilizar.
  • Visualizar atributos de una definición de proceso
    Utilice el mandato DISPLAY PROCESS para examinar los resultados de la definición. Por ejemplo:
    DISPLAY PROCESS (MOTOR.INSURANCE.QUOTE.PROCESS)
    
    
    24 : DISPLAY PROCESS (MOTOR.INSURANCE.QUOTE.PROCESS) ALL
    AMQ8407: Display Process details.
    DESCR ('Insurance request message processing')
    APPLICID ('/u/admin/test/IRMP01')
    USERDATA (open, close, 235)
    PROCESS (MOTOR.INSURANCE.QUOTE.PROCESS)
    APPLTYPE (UNIX)
    

    También puede utilizar el mandato MQSC ALTER PROCESS para modificar una definición de proceso existente, y el mandato DELETE PROCESS para suprimir una definición de proceso.