OPALE - 10.0 - Operations

Solving robot production incidents

De MappingDoc
Révision datée du 22 mai 2019 à 14:11 par Alestoquoi (discussion | contributions) (Page créée avec « Check that MAP400 is not in the syslib : <code>DSPSYSVAL QSYSLIBL</code> »)

This process is described for the operations team to know what main actions to carry out in order to solve MAPSROBOT robot production incidents.

Requirements: Know about System i, JOBD, JOBQ, SBS and CLASS.

How to know the name of the sub-system OPALE Server uses?

Select «MAPPING Operations menu» then in option 1 «MAPPING environment parameters», the name of the sub-system is displayed at the bottom right of the screen: SBS : MAPSROBOT

How to get information on jobd MAPDROBOT?

DSPJOBD MAP400/MAPDROBOT  (DSPJOBD JOBD(MAP400/MAPDROBOT)

User profile: MAPPING

Job queue: MAP400/MAPQROBOT

Request's data: CALL MAP_C812 '*YES'

Libraries: MAP400, QTEMP, QGPL

How to get information on MAPPING user batch?

DSPUSRPRF MAPPING

Messages queue: QUSRSYS/MAPPING

output queue: MAP400/MAPPING

Sub-system MAPSROBOT does not start anymore

Check that the MAPPING user is registered: WRKUSRPRF MAPPING

Check that user message queue exists: WRKMSGQ MAPPING

Check that MAPPING user queue exists: WRKOUTQ MAPPING

Check that MAP400 is not in the syslib : DSPSYSVAL QSYSLIBL

Vérifier que les jobqs existent et ne sont pas holdées : WRKJOBQ MAP400/MAPQ*

Vérifier que les classes existent : WRKCLS MAP400/MAP_*

Si cela ne fonctionne toujours pas, taper la commande :CHGJOBD MAP400/MAPDROBOT LOG(4 00 *SECLVL)

Puis :

STRSBS MAP400/MAPSROBOT

Rechercher le spool de log du démarrage. Le message doit être explicite.Faire les changements nécessaires, puis revenir à la configuration par défaut.CHGJOBD MAP400/MAPDROBOT LOG(0 99 *NOLIST)

Le sous-système est démarré mais les spools ne sont pas traités

Vérifier les jobs des DTAQs dans MAPSROBOT. Pour cela taper la commande : WRKACTJOB SBS(MAPSROBOT)

Il faut visualiser des jobs portant les mêmes noms que les DTAQs qui ont été définies dans le menu Mapping.

Les jobs des DTAQs ne tournent pas dans MAPSROBOT

Vérifier l'existence des DTAQs dans les bibliothèques.

Pour cela, regarder dans l'option 4 du menu d'exploitation le nom des DTAQs et leurs bibliothèques (appuyer sur F11) puis vérifier que l'objet existe :WRKOBJ « LIBNAME »/ « DTANAME »

Les jobs démarrent bien dans MAPSROBOT mais les fichiers ne sont pas traités

Vérifier que les OUTQs d'entrée sont bien attachées aux DTAQs.

Pour cela, regarder dans l'option 4 du menu d'exploitation le nom des OUTQs d'entrée et leurs bibliothèques (appuyer sur F11) puis vérifier que le paramètre file d'attente de données est bien égal au nom de la DTAQ :CHGOUTQ « LIBNAME » / « OUTQNAME »

Les jobs des DTAQs dans MAPSROBOT démarrent, mais s'arrêtent instantanément

Étape 1 : Arrêter le robot par un ENDSBS MAPSROBOT *IMMED

Étape 2 : Faire un STRSBS MAPSOROBOT

Étape 3 : Faire un DSPDTAQ « LIBNAME »/ « DTANAME »

S'il y a encore une des datas de type ENDRBTENDRBT, reprendre à l'étape 1.


Remarque:

Le problème provient en général d'une nouvelle DTAQ créée dans le robot sans avoir au préalable stoppé MAPSROBOT. Vous pouvez en effet créer des nouvelles relations à chaud uniquement si les OUTQs d'entrée utilisent des DTAQ déjà existantes. Dans les autres cas, il faut arrêter et redémarrer le robot. L'autre cause possible, une demande d'arrêt par un ENDRBT interrompu par un appel système + 2

Un job est en MSGW, mais il n'y a pas d'informations dans la log du job

Dans les options du job,

  • regarder le nom de la JOBD utilisée pour soumettre le job. Par exemple MAPDSPEED puis faire : CHGJOBD MAP400/MAPDSPEED LOG(4 00 *SECLVL)
  • Relancer le job.
  • Contrôler la log du job et effectuer les modifications.DSPJOBLOG (nom du job, utilisateur, numéro du job)
  • Puis faire : CHGJOBD MAP400/MAPDROBOT LOG(0 99 *NOLIST)


Remarque :

Bien souvent l'erreur se situe sur l'utilisation du paramètre &CLSPLNUMS dans le robot. Si vous souhaitez le passer à un programme par un CALL d'un CL, il ne faut pas oublier de protéger ce paramètre par des simples cotes avant et après. Dans le cas contraire, l'iSeries va considérer ce paramètre comme une valeur numérique.

CALL MAP400/MONPGM PARM('&CLSPLNUMS')