× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.


  • Subject: Re: Help w/ AS/400 power crash
  • From: "James W. Kilgore" <eMail@xxxxxxxxxxxxxxxxxxx>
  • Date: Fri, 13 Apr 2001 10:24:30 -0700
  • Organization: Progressive Data Systems, Inc.

Dan,

We use the following to create the message queue:

 
/* ------------------------------------------------------------------*/ 
/* Create system message queue                                       */ 
/* ------------------------------------------------------------------*/ 
   CHKOBJ     OBJ(QSYS/QSYSMSG) OBJTYPE(*MSGQ)                          
   MONMSG     MSGID(CPF9801) EXEC(DO)                                   
                CRTMSGQ    MSGQ(QSYS/QSYSMSG) TEXT('Optional MSGQ to +  
                             receive system messages')                  
                ENDDO                                                   
   CHGMSGQ    MSGQ(QSYSMSG) DLVRY(*BREAK) PGM($BRKPGM)                  
/* ------------------------------------------------------------------*/ 


We use the following to monitor this message queue to take action:

This uses an old QUSRTOOL program to convert hex to decimal and our own
internal message forwarding program that you will find in the WYATTERP
distribution.

*************** Beginning of data **************************************
/* ------------------------------------------------------------------*/ 
/* $MONSYSMSG  Monitor QSYSMSG message queue                         */ 
/* ------------------------------------------------------------------*/ 
/* NOTICE: THIS PROGRAM IS LICENSED MATERIAL AND THE PROPERTY OF:    */ 
/*   PROGRAMMER. . . . . .:James W. Kilgore                          */ 
/*   DATE WRITTEN. . . . .: 5/24/95                                  */ 
/* ------------------------------------------------------------------*/ 
   $MONSYSMSG: PGM                                                      
/* ------------------------------------------------------------------*/ 
/* Declare the program variables and copyright notice                */ 
/* ------------------------------------------------------------------*/ 
     DCL   &COPYRIGHT   *CHAR 128 +                                     
                         VALUE('$MONSYSMSG (c) Copyright 1995, +        
                              Licensed materials and the property of: + 
                              James W. Kilgore; All rights reserved.')  
/* ------------------------------------------------------------------*/ 
     DCL   &MSGF        *CHAR 10  /*  Message file name              */ 
     DCL   &MSGFLIB     *CHAR 10  /*  Message file library           */ 
     DCL   &MSGID       *CHAR 7   /*  Message identifier             */ 
  ...+... 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7
.
      DCL   &MSGDTA      *CHAR 100 /*  Message data                   */ 
      DCL   &MSG         *CHAR 132 /*  Message                        */ 
 /* ------------------------------------------------------------------*/ 
      DCL   &DEVICE      *CHAR 10  /*  Device issueing error message  */ 
      DCL   &MODE        *CHAR 8   /*  Mode of device                 */ 
      DCL   &REASONB     *CHAR 2   /*  Reason code - Binary           */ 
      DCL   &REASOND     *DEC (5 0)/*  Reason code - Decimal          */ 
      DCL   &RMTLOC      *CHAR 8   /*  Remote location name           */ 
 /* ------------------------------------------------------------------*/ 
 /* Job attributes                                                    */ 
      DCL   &JOB         *CHAR 10  /*  Job name                       */ 
      DCL   &JOBUSER     *CHAR 10  /*  Job user id                    */ 
      DCL   &JOBNBR      *CHAR 6   /*  Job number                     */ 
      DCL   &JOBTYPE     *CHAR 1   /*  Job type                       */ 
      DCL   &JOBENDSTS   *CHAR 1   /*  End job request                */ 
 /* ------------------------------------------------------------------*/ 
 /* Global message monitor                                            */ 
                                                                         
      MONMSG   MSGID(CPF0000) EXEC(GOTO CMDLBL(SNDERR))                  
      MONMSG   MSGID(MCH0000) EXEC(GOTO CMDLBL(SNDERR))                  
/* ------------------------------------------------------------------*/
/* Test for system shutdown                                          */
/* ------------------------------------------------------------------*/
  RTVJOBA    JOB(&JOB) USER(&JOBUSER) NBR(&JOBNBR) +                   
               TYPE(&JOBTYPE) ENDSTS(&JOBENDSTS)                       
                                                                       
   IF COND(&JOBENDSTS *EQ '1') THEN(GOTO CMDLBL(ENDPGM))               
/* ------------------------------------------------------------------*/
/* Processing loop to receive error messages                         */
/* ------------------------------------------------------------------*/
 BGNEXC:   RCVMSG     MSGQ(QSYSMSG) WAIT(*MAX) MSG(&MSG) +             
                          MSGDTA(&MSGDTA) MSGID(&MSGID) +              
                          MSGF(&MSGF) MSGFLIB(&MSGFLIB)                
/* ------------------------------------------------------------------*/
/* Program start request failed                                      */
   IF (&MSGID *EQ 'CPF1269') DO                                        
           CHGVAR     VAR(&REASONB) VALUE(%SST(&MSGDTA 45 2))          
           CVTBINDEC  FROMBIN(&REASONB) TODEC(&REASOND)                
           IF       ((&REASOND *EQ 704) *OR (&REASOND *EQ 705)) DO     
                      CHGVAR &MODE   %SST(&MSGDTA 11 8)                
                      CHGVAR &RMTLOC %SST(&MSGDTA 48 8)                 
                      CHGVAR &DEVICE %SST(&MSGDTA 1 10)                 
                      ENDMOD RMTLOCNAME(&RMTLOC) MODE(&MODE)            
                      SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +   
                          MSGDTA(&MSGDTA) TOMSGQ(QSECOFR)               
                      ENDDO                                             
   GOTO BGNEXC                                                          
   ENDDO                                                                
/* ------------------------------------------------------------------*/ 
/* Device varied off due to QMAXSIGN value exceeded                  */ 
   IF (&MSGID *EQ 'CPF1397') DO                                         
   SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) MSGDTA(&MSGDTA) +      
                TOMSGQ(QSYSOPR)                                         
   GOTO BGNEXC                                                          
   ENDDO                                                                
/* ------------------------------------------------------------------*/ 
/* Power outage - Using UPS battery power                            */ 
   IF (&MSGID *EQ 'CPF1816') DO                                         
       ENDWTR  *ALL     OPTION(*PAGEEND)                                
       ENDSBS  QCMN     OPTION(*CNTRLD) DELAY(30)                       
       ENDSBS  QSPL     OPTION(*CNTRLD) DELAY(30)                       
       ENDSBS  QINTER   OPTION(*CNTRLD) DELAY(90)                       
   GOTO BGNEXC                                                          
   ENDDO                                                                
/* ------------------------------------------------------------------*/ 
/* Catch all for additional messages - forward to QSYSOPR            */ 
/* ------------------------------------------------------------------*/ 
   SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) MSGDTA(&MSGDTA) +      
                TOMSGQ(QSYSOPR)                                         
   MONMSG     MSGID(CPF0000) EXEC(SNDPGMMSG MSG(&MSG) TOMSGQ(QSYSOPR))  
   GOTO BGNEXC                                                          
/* ------------------------------------------------------------------*/ 
RETURN:    RETURN                /* Return to caller                 */ 
NEVERDO:   CHGVAR VAR(&COPYRIGHT) VALUE(&COPYRIGHT)  /* use or lose  */ 
/* ------------------------------------------------------------------*/ 
/* Forward any error messages                                        */ 
/* ------------------------------------------------------------------*/ 
 SNDERR:                                                                
 CALL      FWDPGMMSG                                                    
 SNDPGMMSG MSGID(CPF9898) MSGF(QCPFMSG) MSGTYPE(*ESCAPE) +              
           MSGDTA('$MONSYSMSG ended in error.  See previous messages')  
/* ------------------------------------------------------------------*/ 
 ENDPGM:   ENDPGM     /* End of program specifications               */ 
/* ------------------------------------------------------------------*/ 
                                                                   
                                                                        


D.BALE@handleman.com wrote:
> 
> No such animal.
+---
| This is the Midrange System Mailing List!
| To submit a new message, send your mail to MIDRANGE-L@midrange.com.
| To subscribe to this list send email to MIDRANGE-L-SUB@midrange.com.
| To unsubscribe from this list send email to MIDRANGE-L-UNSUB@midrange.com.
| Questions should be directed to the list owner/operator: david@midrange.com
+---

As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.