PDA

View Full Version : Signoff im Batch



Seiten : [1] 2

Robi
20-11-02, 15:22
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

rmittag
20-11-02, 15:28
return im steuernden CL ??? oder worum geht's ???

Gruß
Rolf

Robi
20-11-02, 15:53
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.]

schreibr
20-11-02, 16:15
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.]

B.Hauser
20-11-02, 16:21
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

Robi
20-11-02, 16:31
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

horschma
20-11-02, 16:57
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