Appendix C. Sample resource definitions

This appendix contains the AMQSAMP4 sample OS/400(R) CL program.

/********************************************************************/
 /*                                                                  */
 /* Program name: AMQSAMP4                                           */
 /*                                                                  */
 /* Description: Sample CL program defining MQM queues               */
 /*              to use with the sample programs                     */
 /*              Can be run, with changes as needed, after           */
 /*              starting the MQM                                    */
 /*                                                                  */
 /* Statement:     Licensed Materials - Property of IBM              */
 /*                                                                  */
 /*                5724-B41                                          */
 /*                (C) Copyright IBM Corporation 1993, 2002.         */
 /*                                                                  */
 /********************************************************************/
 /*                                                                  */
 /* Function:                                                        */
 /*                                                                  */
 /*                                                                  */
 /*   AMQSAMP4 is a sample CL program to create or reset the         */
 /*   MQI resources to use with the sample programs.                 */
 /*                                                                  */
 /*   This program, or a similar one, can be run when the MQM        */
 /*   is started - it creates the objects if missing, or resets      */
 /*   their attributes to the prescribed values.                     */
 /*                                                                  */
 /*                                                                  */
 /*                                                                  */
 /*                                                                  */
 /*   Exceptions signaled:  none                                     */
 /*   Exceptions monitored: none                                     */
 /*                                                                  */
 /*   AMQSAMP4 has no parameters.                                    */
 /*                                                                  */
 /********************************************************************/
             PGM
 
 
 /********************************************************************/
 /*       EXAMPLES OF DIFFERENT QUEUE TYPES                          */
 /*                                                                  */
 /*   Create local, alias and remote queues                          */
 /*                                                                  */
 /*   Uses system defaults for most attributes                       */
 /*                                                                  */
 /********************************************************************/
 /*   Create a local queue                                           */
             CRTMQMQ     QNAME('SYSTEM.SAMPLE.LOCAL')                +
                         QTYPE(*LCL)  REPLACE(*YES)                  +
                                                                     +
                         TEXT('Sample local queue') /* description */+
                         SHARE(*YES)                /* Shareable   */+
                         DFTMSGPST(*YES)  /* Persistent messages OK  */
 
 /*   Create an alias queue                                          */
             CRTMQMQ     QNAME('SYSTEM.SAMPLE.ALIAS')                +
                         QTYPE(*ALS)  REPLACE(*YES)                  +
                                                                     +
                         TEXT('Sample alias queue')                  +
                         DFTMSGPST(*YES) /* Persistent messages OK */+
                         TGTQNAME('SYSTEM.SAMPLE.LOCAL')
 
 /*   Create a remote queue - in this case, an indirect reference    */
 /*      is made to the sample local queue on OTHER queue manager    */
             CRTMQMQ     QNAME('SYSTEM.SAMPLE.REMOTE')               +
                         QTYPE(*RMT)  REPLACE(*YES)                  +
                                                                     +
                         TEXT('Sample remote queue')/* description */+
                         DFTMSGPST(*YES) /* Persistent messages OK */+
                         RMTQNAME('SYSTEM.SAMPLE.LOCAL')             +
                         RMTMQMNAME(OTHER)   /* Queue is on OTHER    */
 
 /*   Create a transmission queue for messages to queues at OTHER    */
 /*   By default, use remote node name                               */
             CRTMQMQ     QNAME('OTHER') /* transmission queue name */+
                         QTYPE(*LCL)  REPLACE(*YES)  +
                         TEXT('transmision queue to OTHER')  +
                         USAGE(*TMQ)    /* transmission queue      */
 
 /********************************************************************/
 /*       SPECIFIC QUEUES AND PROCESS USED BY SAMPLE PROGRAMS        */
 /*                                                                  */
 /*   Create local queues used by sample programs                    */
 /*   Create MQI process associated with sample initiation queue     */
 /*                                                                  */
 /********************************************************************/
 /*   General reply queue                                            */
             CRTMQMQ     QNAME('SYSTEM.SAMPLE.REPLY')                +
                         QTYPE(*LCL)  REPLACE(*YES)                  +
                                                                     +
                         TEXT('General reply queue')                 +
                         DFTMSGPST(*YES)  /* Persistent messages OK  */
 
 /*   Queue used by AMQSINQA                                         */
             CRTMQMQ     QNAME('SYSTEM.SAMPLE.INQ')                  +
                         QTYPE(*LCL)  REPLACE(*YES)                  +
                                                                     +
                         TEXT('queue for AMQSINQA')                  +
                         SHARE(*YES)                /* Shareable   */+
                         DFTMSGPST(*YES)/* Persistent messages OK  */+
                                                                     +
                         TRGENBL(*YES)  /* Trigger control on      */+
                         TRGTYPE(*FIRST)/* Trigger on first message*/+
                         PRCNAME('SYSTEM.SAMPLE.INQPROCESS')         +
                         INITQNAME('SYSTEM.SAMPLE.TRIGGER')
 
 /*   Queue used by AMQSSETA                                         */
             CRTMQMQ     QNAME('SYSTEM.SAMPLE.SET')                  +
                         QTYPE(*LCL)  REPLACE(*YES)                  +
                                                                     +
                         TEXT('queue for AMQSSETA')                  +
                         SHARE(*YES)                /* Shareable  */ +
                         DFTMSGPST(*YES)/* Persistent messages OK */ +
                                                                     +
                         TRGENBL(*YES)  /* Trigger control on     */ +
                         TRGTYPE(*FIRST)/* Trigger on first message*/+
                         PRCNAME('SYSTEM.SAMPLE.SETPROCESS')         +
                         INITQNAME('SYSTEM.SAMPLE.TRIGGER')
 
 /*   Queue used by AMQSECHA                                         */
             CRTMQMQ     QNAME('SYSTEM.SAMPLE.ECHO')                 +
                         QTYPE(*LCL)  REPLACE(*YES)                  +
                                                                     +
                         TEXT('queue for AMQSECHA')                  +
                         SHARE(*YES)                /* Shareable  */ +
                         DFTMSGPST(*YES)/* Persistent messages OK */ +
                                                                     +
                         TRGENBL(*YES)  /* Trigger control on     */ +
                         TRGTYPE(*FIRST)/* Trigger on first message*/+
                         PRCNAME('SYSTEM.SAMPLE.ECHOPROCESS')        +
                         INITQNAME('SYSTEM.SAMPLE.TRIGGER')
 
 /*   Initiation Queue used by AMQSTRG4, sample trigger process      */
             CRTMQMQ     QNAME('SYSTEM.SAMPLE.TRIGGER') +
                         QTYPE(*LCL)  REPLACE(*YES)   +
                         TEXT('trigger queue for sample programs')
 
 /*   MQI Processes associated with triggered sample programs        */
 /*                                                                  */
 /*****    Note - there are versions of the triggered samples   ******/
 /*****      in different languages - set APPID for these       ******/
 /*****      process to the variation you want to trigger       ******/
 /*                                                                  */
             CRTMQMPRC   PRCNAME('SYSTEM.SAMPLE.INQPROCESS')         +
                         REPLACE(*YES)                               +
                                                                     +
                         TEXT('trigger process for AMQSINQA')        +
                         ENVDATA('JOBPTY(3)') /* Submit parameter */ +
          /** Select the triggered program here   **/                +
                         APPID('AMQSINQA')    /* C     */            +
                /*       APPID('AMQ0INQA')    /* COBOL */            +
                /*       APPID('AMQ3INQ4')    /* RPG - ILE */
 
             CRTMQMPRC   PRCNAME('SYSTEM.SAMPLE.SETPROCESS')         +
                         REPLACE(*YES)                               +
                                                                     +
                         TEXT('trigger process for AMQSSETA')        +
                         ENVDATA('JOBPTY(3)') /* Submit parameter */ +
          /** Select the triggered program here   **/                +
                         APPID('AMQSSETA')    /* C     */            +
                /*       APPID('AMQ0SETA')    /* COBOL */            +
                /*       APPID('AMQ3SET4')    /* RPG - ILE */
 
             CRTMQMPRC   PRCNAME('SYSTEM.SAMPLE.ECHOPROCESS')        +
                         REPLACE(*YES)                               +
                                                                     +
                         TEXT('trigger process for AMQSECHA')        +
                         ENVDATA('JOBPTY(3)') /* Submit parameter */ +
          /** Select the triggered program here   **/                +
                         APPID('AMQSECHA')    /* C     */            +
                /*       APPID('AMQ0ECHA')    /* COBOL */            +
                /*       APPID('AMQ3ECH4')    /* RPG - ILE */
 
 /********************************************************************/
 /*   Normal return.                                                 */
 /********************************************************************/
             RETURN
             ENDPGM
 
 /********************************************************************/
 /* END OF AMQSAMP4                                                  */
 /********************************************************************/