|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : juin 2008 Messages : 4 ![]() |
Bonjour,
J'aimerais trouver une manière d'intercepter des jobs soumises, une fois intercepté, selon un indicateur, lancer la job réellement ou la canceller. Est-ce que quelqu'un sait comment faire ça SVP? Merci, HeyJude |
|
|
00
|
|
|
#2 |
|
Membre régulier
![]() Jean-Philippe BALLAT Inscription : avril 2008 Messages : 62 ![]() |
Bonsoir,
1.Tu peux gerer dans ton CL qui est executé en batch une Dtaara. En debut de job 1......et remise à 0 en fin de job Tu fait une ptit liste (Dtaara (En exécution ou arret) avec des options de gestion (Start...Stop...) /*-------------------------------------------------------------------*/ 2.Un pti CLP CHKSBM avec par input nom du job fait : 1.splf des jobs qui tourne ds &sbs OVRPRTF FILE(QPDSPSBJ) TOFILE(*FILE) HOLD(*YES) WRKSBSJOB SBS(&SBS) OUTPUT(*PRINT) MONMSG MSGID(CPF1003) EXEC(DO) /* Le sous-système n'est pas actif */ CHGVAR VAR(&MSGDTA) VALUE(&SBS *BCAT 'n''est pas + Actif !') ...... 2.copie du resultat ds bd CPY: CPYSPLF FILE(QPDSPSBJ) TOFILE(CHKSBJS) SPLNBR(*LAST) + MBROPT(*REPLACE) 3. CALL PGM(CHKSBJD) PARM(&SBS &JOB &RTNCD1 &RTNCD2) Check enreg pour le w demande Cela peux te donner des idées !!! Cordialement, Jean-Philippe |
|
|
00
|
|
|
#3 |
|
Membre confirmé
![]() Inscription : février 2004 Messages : 204 ![]() |
un job soumis démarre automatiquement sauf si :
- la JOBQ dans laquelle il est soumis est occupée par un autre job dans le cas de JOBQ mono-job - la JOBQ est suspendue donc je ne vois pas comment tu pourrais intercepté un job en cours de traitement, dans ce cas précis tu ne peux intervenir manuellement ou via programme qu'en : - suspendant la JOBQ - suspendant ou arrêtant le job - intervenir sur la priorité d'exécution du JOB attention à ne pas confondre JOB et thread, ces derniers offrant la possibilité de se suspendre en attendant le traitement d'un autre thread pour un job soumis tu peux faire la même chose mais en programmation en utilisant des DTAARA ou des fichiers pour suspendre ou stopper des traitements |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Jean-Philippe BALLAT Inscription : avril 2008 Messages : 62 ![]() |
Hi !!
Yes !! En effet un sbmjob marche tjrs... Donc en effet pourquoi de poser la question....??????? Merci donc de nous exposer ton problème.... On ne pense pas nécessairement à tous les aléas et prbs ds environnement de Production... Cordialement, JP |
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Patrick Inscription : mai 2008 Messages : 821 ![]() |
Tu peux utiliser le programme d'exit (WRKREGINF) : QIBM_QWT_JOBNOTIFY
Dès qu'un nouveau travail est lancé sur le système, il ajoute une entrée dans une DTAQ. M'enfin, celà n'empêchera pas son execution sauf si la JOBQ est suspendue. Dans ce cas, tu fais un prog, éxécuté en tâche de fond qui récupère les entrées de la DTAQ. Ainsi tu sauras conaîtras les travaux soumis et pourras éventuellement changer de JOBQ pour un travail ou éventuellement faire un ENDJOB |
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : juin 2008 Messages : 4 ![]() |
Bonjour,
OK, plus en profondeur. J'ai fait ce que je dis aux utilisateurs de ne pas faire, demander une solution au lieu d'expliquer le problème ... oops: Je dois avoir ma machine de prod et ma machine de back up opérationnelle sur tout. Je ne veux pas avoir une procédure du tonnère qui consiste à activer des triggers, activer le scédulleur, etc ... le jour ou je devrai alterner mes machines pour des tests ou pour vrai. Nous utilisons le scédulleur du 400 pour soumettre nos jobs la nuit. Je voudrais que mes scédulleur sur les 2 machines fonctionne, mais que sur la machine back up, les jobs soient arrêtées. Je ne veux pas modifier tout les programmes pour lire une dtaara car il y en a pas mal. Même chose pour les triggers. Puisque nous répliquons les données d'une machine à l'autre, je ne veux pas que les triggers inscrivent des données puis que les données soient répliquées ensuite. Etc ... Bref, voilà pourquoi je veux intercepter des jobs soumises. Si les jobs ne sont pas soumises sur la machine de prod, elles doivent être cancellées. Merci pour les idées, d'autres seraient bienvenue. Hey Jude |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() Patrick Inscription : mai 2008 Messages : 821 ![]() |
Les jobs sur ta machine de backup sont lancés forcément dans une JOBQ.
Holde tout simplement la jobq (WRKJOBQ puis option 3). Cette solution t'as déjà été proposée par Green Hornet. |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : juin 2008 Messages : 4 ![]() |
Hey bien, mon boss ne veut pas holder les jobq ... il faut quand même pas que ce soit trop facile, sinon je vais m'endormir ;-)) Même chose pour ajouter des lignes dans tout les CLP, ce serait long, pis tannant avec les OCL 36.
Mais, bonne nouvelle, grace à QIBM_QWT_JOBNOTIFY, j'ai réussi à trapper les jobs soumises partout, et à les laisser rouler si elles sont sur ma machine de production, et à les canceller si elles sont sur ma machine de back up !! Ca fonctionne numéro 1. Merci beaucoup de m'avoir fait découvrir les points de sortie IBM, je ne connaissais rien à cela mais je sens que ça va me servir beaucoup dans les prochaines semaines... Merci beaucoup de votre aide à tous ! Julie |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com