Figure 2: Test for the SNDMSG command
 
            PGM
 
/* ---------------------------------------------------------------- */
/* Declare variables                                                */
/* ---------------------------------------------------------------- */
            DCL        VAR(&USER) TYPE(*CHAR) LEN(10) 
            DCL        VAR(&TEXT) TYPE(*CHAR) LEN(10) 
Catching all errors is important.
/* ---------------------------------------------------------------- */
/* Catch all errors                                                 */
/* ---------------------------------------------------------------- */
            MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(ENDPGM))
This is the actual test
/* ---------------------------------------------------------------- */
/* Send a message to the message queue                              */
/* ---------------------------------------------------------------- */
            RTVJOBA    USER(&USER)
            SNDMSG     MSG('HALLO') TOUSR(&USER) 
            RCVMSG     MSGQ(&USER) MSG(&TEXT) 
 
         /* ------------------------------------------------------- */
         /* The actual test                                         */
         /* ------------------------------------------------------- */
            IF         COND(&TEXT *NE 'HELLO') THEN(DO)
            DMPCLPGM
            SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('The text was not the same, see dump') MSGTYPE(*ESCAPE)
            GOTO       CMDLBL(ENDPGM)
Unexpected errors where found
/* ---------------------------------------------------------------- */
/* Errors in the program                                            */
/* ---------------------------------------------------------------- */
ERROR: 
            CALL       PGM(IUNIT/@LOG)
            MONMSG     MSGID(CPF0000)
 
            SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('An unexpected error occured') MSGTYPE(*ESCAPE)
Leave gracefully
/* ---------------------------------------------------------------- */
/* Exit                                                             */
/* ---------------------------------------------------------------- */
ENDPGM: 
             SNDPGMMSG  MSGID(CPF9898) MSGF(QCPFMSG) MSGDTA('Test TESTTEST says hello') TOPGMQ(*SAME)
             CALL       PGM(IUNIT/@LOG)
             MONMSG     MSGID(CPF0000)
 
             ENDPGM