OPALE - 10.0 - Operations
Solving robot production incidents
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.
Sommaire
- 1 How to know the name of the sub-system OPALE Server uses?
- 2 How to get information on jobd MAPDROBOT?
- 3 How to get information on MAPPING user batch?
- 4 Sub-system MAPSROBOT does not start anymore
- 5 The sub-system starts but spools are not processed
- 6 MAPSROBOT does not able DTAQs jobs to run
- 7 MAPSROBOT runs jobs but files are not processed
- 8 MAPSROBOT runs DTAQs jobs but they immediately stop
- 9 Un job est en MSGW, mais il n'y a pas d'informations dans la log du job
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
Check that the jobqs exist and are not being held: WRKJOBQ MAP400/MAPQ*
Check that the classes exist: WRKCLS MAP400/MAP_*
If it still does not work, run command:CHGJOBD MAP400/MAPDROBOT LOG(4 00 *SECLVL)
Then:
STRSBS MAP400/MAPSROBOT
Look for start-up log spool. The message has to be explicit. Apply necessary changes, then return to default configuration.CHGJOBD MAP400/MAPDROBOT LOG(0 99 *NOLIST)
The sub-system starts but spools are not processed
Check DTAQs jobs in MAPSROBOT. To do so, type command: WRKACTJOB SBS(MAPSROBOT)
You should see jobs with the same names as the DTAQs which were defined in the Mapping menu.
MAPSROBOT does not able DTAQs jobs to run
Check for DTAQs in the libraries.
To do so, in option 4 of the operations menu, check the name of DTAQs and their libraries (press F11) then check that the object exists:WRKOBJ « LIBNAME »/ « DTANAME »
MAPSROBOT runs jobs but files are not processed
Check that input OUTQs are linked to DTAQs.
To do so, in option 4 of the operations menu, check the name of input OUTQs and their libraries (press F11) then check that the data queue parameter corresponds to the DTAQ's name:CHGOUTQ « LIBNAME » / « OUTQNAME »
MAPSROBOT runs DTAQs jobs but they immediately stop
Step 1: Stop the robot using ENDSBS MAPSROBOT *IMMED
Step 2: Enter STRSBS MAPSOROBOT
Step 3: Enter 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')