Fonctionnement en Start Task

Vous découvrirez comment installer et administrer la Start Task.

Installation

Principe

La procédure Start Task, la procédure standard RDJEX et les autres procédures appelées ainsi que les membres “include” nécessaires sont copiés dans la proclib STC du système autorisé.

Procédure

  1. Mettez à jour dans le membre <RDJEXEC>.PRCLIB($$SETQMG) les variables suivantes :
  2. Soumettez le JCL <RDJEXEC>.JCLLIB.STC(ADMSTC) si vous avez les droits d’administration nécessaires pour copier dans la proclib STCLIB.
  3. Vérifiez la présence des membres suivants dans la proclib système STCLIB :
  4. * &STCEXP :

    STC renommée (nom par défaut : STCEXP)

    * $$LANGUE :

    membre include appelé par $$SET

    * $$OCPMAJ :

    membre include appelé par $$SET

    * $$SET :

    membre include des variables JCL

    * $$SETCMN :

    membre include appelé par $$SET

    * $$SETCMY :

    membre include appelé par $$SET

    * $$SETFR :

    membre include appelé par $$SET

    * $$SETGB :

    membre include appelé par $$SET

    * $$SETQMG :

    membre include appelé par $$SET

    * $STEPLIB :

    membre include STEPLIB

    RDJEXP :

    proc RDJEXP

    * ZZIDCAMS :

    proc utilitaire

    * ZZIDCAM2 :

    proc utilitaire

    * ZZRDJENV :

    proc utilitaire

  5. Testez la proc STC en mode JCL en soumettant le JCL <RDJEXEC>.JCLLIB.STC(JCLSTC). Vérifiez que le JCL est bien dans la file d’attente des CRE sur le step STMQS. Ensuite, annulez le JOB.

Généralités

Commandes standard

Le pilotage des STC se fait sous SDSF en utilisant le nom de la procédure (par exemple : STCEXP ) :

  • /S   STCEXP  pour activer une "started task" dans le JES
  • /P   STCEXP  pour demander l’arrêt d’une "started task"
  • /F STCEXP, textMODIFY pour envoyer un message de la console à une "started task"

Les commandes /P et /F ne peuvent être interprétées que par les STC qui gèrent la console opérateur.

Commandes JCL

Il est parfois utile, voire obligatoire, de lancer les commandes MODIFY par JCL car, sur certains sites, des commandes peuvent être interdites sous SDSF.

Exemple :

//job card

// EXEC PGM=IEBEDIT

//SYSPRINT DD SYSOUT=R

//SYSUT2 DD SYSOUT=(A,INTRDR),DCB=BLKSIZE=80

//SYSIN DD DUMMY

//UE000010.SYSUT1 DD *,DLM='**'

/*$VS,'F IPGRDJMQ,reinit by message'

/*

//* 'F for modify'

//* 'F for modify'

Les cartes JOB fournies ci-dessus permettent de lancer les commandes S (start), P (stop) et F (modify) à partir d’un JCL. Notez que la commande fournie "reinit by message" sera reçue par le Rule Engine en majuscules "REINIT BY MESSAGE".

Association d’une STC à un utilisateur TSO

La différence entre un JOB soumis via un JCL et un JOB (STC) soumis dans une "Started Task" est que la STC n’est pas rattachée en standard à un utilisateur. Cela peut poser quelques problèmes avec RACF pour MQSeries en particulier.

Les cartes JCL suivantes permettent d’associer une STC à un USER TSO.

//JOB card                                                              00010000

//*                                                                     00030000

//* TO ISSUE RACF COMMAND                                               00050000

//*                                                                     00070000

//ACCRACF  EXEC PGM=IKJEFT01,DYNAMNBR=75,TIME=100,REGION=6M             00071000

//SYSPRINT DD SYSOUT=*                                                  00072000

//SYSTSPRT DD SYSOUT=*                                                  00073000

//SYSTERM  DD DUMMY                                                     00074000

//SYSTSIN  DD *       <<<<<< CHANGE IN SYSTSIN                          00077000

RDELETE STARTED MQECB.MQECB                                            00077112

RDEFINE STARTED MQECB.**       STDATA(USER(SOP301X) GROUP(@SOPRDJ) -   00077212

        TRACE(YES)) OWNER(@SOPRDJ) UACC(NONE)                           00078010

SETROPTS  RACLIST(STARTED) REFRESH                                     00078200

RLIST  STARTED  * ALL STDATA                                           00078300

/*                                                                      00078400

L’exemple précédent associe l'utilisateur TSO SOP301X et le groupe @SOPRDJ à la STC MQECB.

Particularités des messages d’administration console

Les critères garantissant le bon usage des messages d’administration console via MQSeries sont :

  • L’utilisation d’un CorrelId spécifique
  • L’utilisation d’une priorité supérieure ou égale à celle des CRE
  • L’utilisation de texte en MAJUSCULE
  • La compatibilité avec l’ancienne commande STOP du Rule Engine
  • L’auto-nettoyage des anciennes commandes MQSeries.

CorrelId des messages d’administration

Un message d’administration console par MQSeries doit avoir un CorrelId égal au texte "XADM_CONSOLE".

Priorité

L’usage d’une priorité supérieure à celle des CRE du Rule Engine permet à un message d’administration de passer en priorité après un lot en cours ou après le CRE courant.

L’usage d’une priorité de même niveau que celle des CRE permet au contraire de garantir, sous condition que le flux d’alimentation des CRE soit stoppé, que la commande d’administration sera traitée après le dernier CRE.

Texte des commandes

Toutes les commandes d’administration doivent être en majuscules comme les commandes reçues à partir de la console opérateur.

Épuration d’anciens messages d’administration MQSeries

À chaque redémarrage de vacation, les messages ayant le CorrelId XADM_CONSOLE sont supprimés de la file d’attente des CRE.

Messages d’administration

Ces messages d’administration peuvent être envoyés de deux façons :

  • En mode STC : avec la soumission d’une commande d’administration MODIFY via SDSF (ou JCL équivalent).
    La STC appelle la procédure RDJEXP en mode immédiat.
  • En mode normal : la commande est soumise directement par JCL.

Les deux éléments (exemple ex1/ex2) suivants sont des exemples de JCL livrés dans les PDS :

  • <RDJEXEC>.JCLLIB.STC pour le mode STC
  • <RDJEXEC>.JCLLIB pour le mode normal.

Fermeture des fichiers (STMCLO/RDMCLO)

Le message d’administration CLOSE arrête la vacation en cours pour se mettre en attente d’une commande de ré-initialisation.

Ces commandes ne sont pas prises en compte pendant le traitement d’un lot de messages.

Un message est placé dans la SYSOUT ou affiché à l’écran pour indiquer que le Rule Engine attend un message de ré-initialisation pour redémarrer.

Toutes les files d’attente MQSeries sont fermées à l’exception de la file d’attente des CRE qui peut être utilisée pour transmettre le message de ré-initialisation.

16/02/2006 10:06:31  - Administration message : CLOSE BY MESSAGE    XRDJ MQ - CLOSE FILE ENDING                                                Waiting REINIT command to restart XRDJ                                 

Fermeture des fichiers dans une file d’attente vide (STMCLOEQ/RDMCLOEQ)

Le message d’administration CLOSE_ON_EMPTYQ entraîne la fermeture des fichiers lorsque la file d’attente des événements est vide. Le Rule Engine détecte cet état à la sortie du délai d'attente.

Note   Si cette commande est passée par une commande MODIFY sur z/OS et que la file des CRE est vide, la détection ne se fera qu'à l’issue du délai d'attente actuel qui peut être long (10 minutes par défaut). Au contraire, si la commande est envoyée par un message MQSeries, le délai d'attente sera automatiquement réduit à 3 secondes.

16/02/2006 11:20:29 - Administration message : CLOSE_ON_EMPTYQ BY MESSAGE  XRDJ MQ waiting empty queue to CLOSE files                                 XRDJ MQ - CLOSE FILE ENDING                                                Waiting REINIT command to restart XRDJ                                 

Réouverture des fichiers (STMRIN/RDMRIN)

Le message d’administration REINIT permet de relancer une vacation lorsque le Rule Engine a traité une commande CLOSE. Sinon, la commande REINIT est ignorée.

Après une commande REINIT, la file d’attente des CRE est fermée et le gestionnaire MQSeries déconnecté. Il est alors possible de renommer des files d’attente ou des fichiers MQSeries (gestionnaire, file d’attente d’entrée, file d’attente de sortie).

16/02/2006 10:10:51  - Administration message : REINIT BY MESSAGE XRDJ - REINITIALISATION by REINIT Command                         16/02/2006 10:10:52 restart session                              

Arrêt du Rule Engine STMSTP/RDMSTP)

Le message d’administration STOP (ou la commande opérateur /P) permet l’arrêt du Rule Engine dans tous les cas. Si un lot est en cours de traitement, cette commande sera prise automatiquement en compte après la fin du lot.

16/02/2006 10:19:05  - Administration message : STOP by MB     XRDJ MQ stopped by admin command                             16/02/2006 10:19:05 end vacation                               

Suspension du Rule Engine (STMPAU/RDMPAU)

Le message d’administration PAUSE permet de stopper la consommation des CRE jusqu’à la réception d’un message RESUME. Vous pouvez ainsi vider les files d’attente de sortie et la file d’attente des CRE lors d’une erreur de traitement du Rule Engine, si vous ne voulez pas traiter tous les CRE en cours dans la file. Lorsque le Rule Engine est en PAUSE, il n’accepte que les commandes d’administration venant de la console. Le message d’arrêt par CorrelId ADMSTOP est ignoré.

Dans ce cas, les files d’attente MQSeries et les fichiers ne sont pas fermés.

16/02/2006 10:15:40  - Administration message : PAUSE  by MB    XRDJ MQ waiting RESUME command (pause status)             

Reprise du Rule Engine (STMRES / RDMRES)

Le message d’administration RESUME n’est pris en compte que pour arrêter l’effet de la commande PAUSE.

Elle est ignorée dans les autres cas.

16/02/2006 10:16:59  - Administration message : RESUME  par MB             XRDJ MQ - last pause (16/02/2006 10:15:40 ) ended by resume command

Demandes de statistiques (STMSTA/RDMSTA)

Le message d’administration STAT vous permet d’afficher certaines données statistiques du Rule Engine (nombre de messages traités, nombre de lots traités, nombre de commandes d’administration…).

Vous pouvez ajouter d’autres éléments tels que le nombre de CRE traités.

16/02/2006 10:13:52  - Administration message : STAT BY MESSAGE XRDJ Statistics

Event Msg received     : 0

Group events received  : 0

Admin command received : 12

Wait time console (s)  : 600

Modification de la temporisation MQSeries (STMCHW/RDMCHW)

L’écoute des événements CONSOLE et des événements MQSeries en mode ECB impose une modification de la temporisation pour ne pas se faire déconnecter par le sous-système TSO.

Ce délai d'attente est positionné par défaut à 10 minutes (600 secondes). Le message d’administration CHANGE_WAIT vous permet de modifier cette valeur par défaut. Vous pouvez, par exemple, utiliser la commande «CHANGE_WAIT 3600» pour passer le délai d'attente à une heure.

Note   Si la commande CHANGE_WAIT est passée par une commande MODIFY, le nouveau délai ne sera pris en compte qu’à l’expiration du délai d'attente en cours.
Par exemple, si le délai d'attente courant vaut 10 minutes, une demande de changement du délai à 1 minute ne sera prise en compte qu’au bout de 10 minutes OU lorsqu’un nouveau message MQSeries arrivera.

16/02/2006 09:49:44  - Administration message : CHANGE_WAIT 60    XRDJ New TimeOut = 60 seconds                              

Affichage des paramètres de la file d’attente des CRE (STMINQ/RDMINQ)

Le message d’administration INQUIRE vous permet d’afficher les paramètres de la file d’attente des CRE et en particulier le paramètre CURDEPTH qui donne le nombre de messages présents dans la file d’attente.

16/02/2006 09:59:25  - Administration message : INQUIRE BY MESSAGE

XRDJ MQ INQUIRE Event Queue

QUEUE(MQS1.RDJ.IEVENT)

DESCR(FIRST INPUT QUEUE FOR RDJ)

PROCESS()

BOQNAME()

INITQ()

TRIGDATA()

CRDATE(2006-02-10  11.47.16)

GET(ENABLED)

PUT(ENABLED)

DEFPRTY(0)

DEFPSIST(YES)

MAXDEPTH(5000)

MAXMSGL(33000)

BOTHRESH(0)

NOSHARE

DEFSOPT(EXCL)

NOHARDENBO 

MSGDLVSQ(PRIORITY)

RETINTVL(999999999)

USAGE(NORMAL)

NOTRIGGER

TRIGTYPE(FIRST)

TRIGDPTH(1)

TRIGMPRI(0)

TYPE(QLOCAL)

DEFTYPE(PREDEFINED)

IPPROCS(1)

OPPROCS(0)

CURDEPTH(0)

Related Links