View Full Version : Signoff im Batch
Hi, *all
es ist ja schon fast peinlich, aber ...
wie kann sich ein BatchJob hart beenden ?
Signoff geht nicht
endrqs auch nicht
endjob geht nicht auf sich selber.
muß ich echt ein endjob submitten ?
wer weiß rat
dank
Robi
return im steuernden CL ??? oder worum geht's ???
Gruß
Rolf
ne, nix CL
ein RPG (ILE) ruft ein ILE, das ruft ein ile ...
und stellt fest : mittlere Katastrophe
also, meldung in fehlermeldungsdatei
und job abschießen !! da in den Parametern kein 'hör sofort auf' transportiert wird.
is zwar nicht schön, aber hilfreich
Robi
[Dieser Beitrag wurde von Robi am 20. November 2002 editiert.]
Hallo Robi,
ich denke das funktioniert nur dann, wenn Du dies den vorherigen RPG's in irgendeiner Form mitteilst. Also, wenn das letzte RPG den Fehler feststellt --> *INLR setzen und per z.B. Parameterliste dem vorherigen aufrufenden Pgm den LR-Status übergeben. Dieses Pgm setzt dann bei erhaltenen LR-Status ebenfalls den *INLR und so weiter.
Gruss Reinhold
andigoering
20-11-02, 16:21
Hallo!
Interessante Aufgabenstellung....
Würde ich so lösen:
1. CL-Programm mit Parameter Job
Dies führt einen ENDJOB OPTION(*IMMED)
auf diesen Job durch
2. Programm was die "mittlere Katastrophe" erkennt ruft CL-Programm aus 1.) auf.
Viele Grüße
Andreas Göring
[Dieser Beitrag wurde von andigoering am 20. November 2002 editiert.]
Hallo,
verstehe ich Dich richtig, Du hast folgende Situation:
1. Programm PGM1 --> Call PGM2
2. Programm PGM2 --> Call PGM3
:
: Programm PGMN
--> Mittlere Katastrophe und Ende
Am einfachsten ist dies durch das Senden einer Message mit Message-Type *ESCAPE an das 1. Programm zu realisieren.
(CL-Befehl SNDPGMMSG oder API QMHSNDPM)
Die *ESCAPE-Message bewirkt, dass alle Programme und Prozeduren im Call Stack bis zu dem Programm, das die *ESCAPE-Message empfängt sofort beendet werden.
Das 1. Programm empfängt die Nachricht
und beendet sich dann.
(CALL mit (E)-Extender oder mittlere Bezugszahl)
Birgitta
Danke
Andigoering: so hab ich z.zt aber das ist unsportlich!!
Brigitta: prima Idee, ist nicht so einfach, da ich das 1. rufende pgm nicht kenne.
(also :mach ich ein rtvpgmstk)
ein 'call QCMD' Parm(SIGNOFF-im-Batch)
währ mir am liebsten
Danke nochmal
ROBI
nochmal Danke
wenn du schon in einem ILE Programm bist versuch doch mal mit der Unix Funktion
kill( 0, 15 )
Thomas
andigoering
20-11-02, 20:05
Hallo Robi!
Also warum das jetzt plötzlich unsportlich sein soll weiss ich nicht.
Du willst doch einen Befehl der den Job killt, oder?
Auf unserer website www.goering.de (http://www.goering.de) habe ich soeben eine Freeware "KILLME" (CL-Quellen) zum Download bereitgestellt.
HTH
Andreas Goering
GOERING iSeries Solutions
Bruno Jakob
21-11-02, 07:35
Hallo Robi,
bau doch einfach eine Escape-Message ein, wo der Abbruch stattfinden soll. APIs QMHSNDPM ist da ganz nützlich.
Gruß
Bruno