SYNCHRO ENTRE JOBS

RPG (3 et 4, free), CL, SQL, etc...
Répondre
BastienPeyre
Messages : 11
Enregistré le : jeu. 23 juil. 2020, 10:40:08

SYNCHRO ENTRE JOBS

Message par BastienPeyre »

Bonjour,

Je souhaite synchroniser 1 jobs avec X jobs soumis.
J'ai réussi à le faire de manière pas idéale, c'est à dire que le job parent soumet X jobs, les compte pour mémoriser dans une variable ce nbre, et attend de recevoir les messages *COMP sur une MSGQ.
Ca fonctionne sauf que rien ne me dit, que les X jobs qui se sont terminés sur cette MSGQ sont bien les X qui ont été soumis...

J'ai trouvé un autre exemple ici : https://www.volubis.fr/news/liens/AF4SR ... GEXEMP.htm
Mais je n'arrive pas à le faire fonctionner :

CL TESTSYNC1 :

Code : Tout sélectionner

SNDPGMMSG  MSG('question') TOMSGQ(ARCAD_FRA/INTEGARC) +  
           MSGTYPE(*INQ) RPYMSGQ(ARCAD_FRA/INTEGARC) +   
           KEYVAR(&CLE)                                  
                                                         
SBMJOB CMD(CALL PGM(TESTSYNC2)) +                        
       JOB(TESTSYNC2) MSGQ(ARCAD_FRA/INTEGARC)           
                                                         
                                                         
RCVMSG     MSGQ(ARCAD_FRA/INTEGARC) MSGTYPE(*RPY) +      
           MSGKEY(&CLE) +                                
           WAIT(*MAX) MSG(&REPONSE)                      
CL TESTSYNC2 :

Code : Tout sélectionner

DLYJOB     DLY(10)                                   
                                                     
RCVMSG     MSGQ(ARCAD_FRA/INTEGARC) MSGTYPE(*INQ) +  
           WAIT(*MAX) KEYVAR(&CLE)                   
SNDRPY     MSGKEY(&CLE) MSGQ(ARCAD_FRA/INTEGARC) +   
           RPY(&REPONSE)                             
Le TESTSYNC2 part systématiquement en MSGW car MSGQ déjà allouée.

Merci de votre aide.

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Re: SYNCHRO ENTRE JOBS

Message par cmasse »

Allouée par qui ? (WRKOBJLCK)
Christian Massé (Volubis.fr)

BastienPeyre
Messages : 11
Enregistré le : jeu. 23 juil. 2020, 10:40:08

Re: SYNCHRO ENTRE JOBS

Message par BastienPeyre »

Allouée par le 1er job qui exécute TESTSYNC1 (qui lui reste en "Attente d'une réponse dans file d'attente de messages INTEGARC. ")

Hurri
Messages : 38
Enregistré le : lun. 02 nov. 2020, 16:04:59

Re: SYNCHRO ENTRE JOBS

Message par Hurri »

Et si tu créais au départ du job qui lance tout, une MSGQ spécifique, dont le nom serait associé au n° du JOB, genre MSG_xxxxxx ou xxxxxx est le n° du Job
Tu passes le n° de cette MSGQ en paramètre, les jobs concernés ne répondront que sur cette MSGQ.
Il suffit ensuite de supprimer la MSGQ quand le programme original se termine.

BastienPeyre
Messages : 11
Enregistré le : jeu. 23 juil. 2020, 10:40:08

Re: SYNCHRO ENTRE JOBS

Message par BastienPeyre »

Yes merci je vais passer par la création d'une MSGQ.

Ceci dit ça pourrait être intéressant d'avoir la réponse/explication sur le pbm inital de MSGQ lockée car il me semble avoir reproduit à l'identique le code de l'exemple Volubis (ou alors j'ai raté un truc bête c'est évidemment très probable :D )

cmasse
Site Admin
Messages : 813
Enregistré le : mer. 14 févr. 2007, 18:00:03
Localisation : Nantes
Contact :

Re: SYNCHRO ENTRE JOBS

Message par cmasse »

je reproduit votre problème. l’explication est donnée dans la doc.
If the specified message queue is not allocated to the job in which this command is entered, or to any other job, the message queue is implicitly allocated by this command for the duration of the command's processing.
https://www.ibm.com/support/knowledgece ... rcvmsg.htm

Lancez JOB2 en premier et ça marche ! (j'ai modifié le cours : https://www.volubis.fr/news/liens/AF4SR ... GEXEMP.htm)
Christian Massé (Volubis.fr)

BastienPeyre
Messages : 11
Enregistré le : jeu. 23 juil. 2020, 10:40:08

Re: SYNCHRO ENTRE JOBS

Message par BastienPeyre »

Ravi d'avoir provoqué l'éclaircissement de ce point :D

Super merci bcp ! Et merci pour la réactivité et la compétence, j'apprécie ce forum.

Répondre