Types de messages et PGMQ

BoTTom |    Changer de couleur
                        Messagerie pgm à pgm
                        --------------------
 
 Un pgm peut envoyer des messages par la commande SNDPGMMSG
 
 Voila les différents types possibles:
 
    *INFO   : information
    *INQ    : question (sous entend une réponse)
    *COMP   : achevement (j'ai bien réalisé ce que vous m'avez demandé)
    *DIAG   : diagnostique (signal les raisons d'une erreur,en général
                          suivit d'un message *ESCAPE)
    *ESCAPE : arret programme(erreur,provoque la fin du pgm qui envoit)
    *NOTIFY : avetissement(erreur,avec envoi de réponse si le pgm appelant
                           ne contrôle pas ce message)
    *STATUS : état d'avancement
    *RQS    : demande (d'une action,d'un traitement)
 
 
 
 
 


|    Changer de couleur
 
Ces messages peuvent être envoyés à des files d'attente (*MSGQ)
    utilisateurs ou écrans.
Ils peuvent être envoyés à des files d'attente pgm (PGMQ)
 
A chaque travail est associé une file d'attente particulière,la JOBMSGQ
  composée comme suit:
 
             .............................
             : *EXT                      : l'EXTERNAL (sert au dialogue
             :                           :             avec le monde
             :                           :             exterieur)
             :...........................: ------------------------------
             : pgm1                      :  une pgmq par pgm actif
             :                           :      (reflet de la liste
             :...........................:       d'invocation)
             : pgm2                      :
             :                           :  chaque pgmq porte le nom du
             :...........................:  pgm auquel elle est associée
             : pgmx                      :
             :                           :
             :...........................:


|    Changer de couleur
 
 Possibilités types de messages / file d'attente
 
     ! TYPE     !  *EXT     !   PGMQ      ! MSGQ   !
     !----------!-----------!-------------!--------!
     ! *INFO    !  oui      !   oui       ! oui    !
     ! *INQ     !  oui      !   NON       ! oui    !
     ! *COMP    !  oui      !   oui       ! oui    !
     ! *DIAG    !  oui      !   oui       ! oui    !
     ! *ESCAPE  !  NON      !   oui       ! NON    !
     ! *NOTIFY  !  oui      !   oui       ! NON    !
     ! *STATUS  !  oui      !   oui       ! NON    !
     ! *RQS     !  oui      !   oui       ! oui    !
     !          !           !             !        !
     !---------------------------------------------!
 
 Les messages de type *ESCAPE,*NOTIFY,*STATUS peuvent être "monitorés"
 
 Ils doivent donc être pré-définis (envoyés à partie d'une ID-message)
 
 
 


|    Changer de couleur
 Réaction d'un pgm suite à l'arrivée d'un message dans sa PGMQ.
                                                     --------
      --------*INFO<------ TYPE ? ------>*ESCAPE-----!MONMSG!
      !       *DIAG                      *NOTIFY     !niveau!--OUI-> EXEC()
      !       *COMP                      *STATUS     ! cde? !
      !                                              --------
      v                                                 !
--------------                                          ! NON
! retour au  !                                       --------
! pgm        !                                       !MONMSG!
! emetteur   !                                       !niveau!--OUI-> EXEC()
!------------!                                       ! pgm? !
      ^                                              --------
      !<-------------------------------*STATUS--!       ! NON
      !                                         !       !
      !            -----------------            !---- TYPE ? 
      !            !le système envoi            !       !
      !<-----------!la reponse par !---*NOTIFY--!       ! *ESCAPE
                   !dft du message !                    !
                   -----------------                    !
                                                        !
                                                        v


|    Changer de couleur
       Message de type *ESCAPE non monitoré             !
                                                        v
       (Retour à l'appellant impossible,            ---------
        celui-ci a été désactivé lors de            ! MONMSG!
        l'envoi du message)                         !CPF9999!
                                                    !niveau !--OUI-> EXEC()
                                                    !  pgm? !
                                                    ---------
                                                        ! NON
                                                        !
                                                  --------------
                                                  !  CPA0701   !
                                                  ! à l'écran  !
    .......................                       !  ou à      !
    : Arret anormal du    : <--- C -------------- ! l'opérateur!
    :  pgm                :                       --------------
    :                     :                     /         !
    : Envoi d'un message  :                   /           I 
    : d'erreur à          :    ............ R       ...................
    : l'appellant.        :    : ré-essai :         :Commande suivante:
    :.....................:    :..........:         :.................:
 


|    Changer de couleur
 
 Les messages de type *ESCAPE previenent d'une erreur irremediable.
 
 Les messages type *NOTIFY previenent d'une erreur grave
                   *STATUS previenent de ce que le pgm est en train de faire
 
     en monitorant ces messages vous empechez le pgm appellé de continuer
     en ne monitorant pas vous laissez faire.
 
 Tres peu de pgms système utilisent les messages de type *NOTIFY et *STATUS
 (sauf *STATUS vers l'*EXTERNAL)
 
 Mais pensez-y quand même avec les MONMSG CPF0000, surtout de niveau pgm.
 
 
 ATTENTION:
 Les messages de *STATUS ne restent jamais dans la PGMQ,donc ne sont
  jamais notés dans la LOG.Cela peut rendre complexe l'analyse des raisons
  d'un arret anticipé de pgm.
 
 
 





©AF400