PDA

View Full Version : Job in SBS beenden



hs
10-12-01, 14:44
Ich habe ein SBS, in dem alle 15 min ein Job aufgerufen wird und dann ca. 1 min läuft.

Für die Datensicherung muß ich das SBS beenden und nach erfolgter Sicherung wieder starten.

Dabei muß sichergestellt sein, dass der Job nicht abgebrochen wird, während er läuft. D.h. ich kann das SBS nicht mit *IMMED beenden.
Beende ich das SBS mit *CNTRLD, dann wird dieses nicht beendet, obwohl darin kein Job aktiv ist (der obige Job hat den Status DLYW).

Wie kann ich das SBS "kontrolliert" beenden, d.h. nur wenn der Job nicht gerade aktiv ist?

Vielen Dank für eure Hilfe
HS

Bodo Roggenkamp
10-12-01, 15:08
Hallo,

eine Möglichkeit wäre, dass im Programm für die Datensicherung ein Objekt (DTAARA, PF oder ähnliches) erstellt bzw. gefüllt wird.

Der Job, der alle 15 Minuten läuft, prüft als erstes, ob dieses Objekt vorhanden bzw. entsprechende Info's enthält. Ist dies der Fall, Programm beenden.

Im Sicherungsprogramm dann das SBS beenden und das Objekt löschen bzw. verändern.
Somit ist gewährleistet, dass der Job nicht beim ENDSBS der Datensicherung aktiv werden kann.

Vielleicht hilft Dir das ja.

Gruss
Bodo

JoergZ
10-12-01, 15:20
Ich würde es andersherum machen, sonst muss das Sicherungsprogramm ja u.U. 15Minuten warten.

DTAARA, die vom Dauerjob auf 1 gesetzt wird, wenn er aktiv wird, und wieder auf 0 gesetzt wird, bervor die nächsten 15min DLY kommen.

Das Sicherungsprogramm beendet das SBS nur, wenn die DTAARA auf 0 steht. D.h. der Sicherungsjob hat max. eine Minute Verzögerung.

Ich arbeite allerdings bei solchen Sachen ungerne mit DTAARAs. Wenn der Dauerjob abstürzt, und die DTAARA bleibt auf 1 stehen, läuft die Nachtsicherung nicht.

Alternative wäre z.b. eine Dummy-Datei erstellen auf die der Dauerjob ein ALCOBJ macht bevor er läuft, und ein DLCOBJ wenn er fertig ist.

Das Sicherungsprogramm beendet das SBS nur wenn es auf diese Dummy-Datei ein ALCOBJ machen kann.


Gruss

Jörg

hs
10-12-01, 16:17
Erstmal Danke für eure Vorschläge.

Leider kann ich mein Problem wie von euch beschrieben nicht lösen, weil ich an die Quelle des Jobs, der permanent augerfufen wird, nicht rankomme.

Ich kann lediglich meine Datensicherungsprozedur beeinflussen.

Gruß
HS

rmittag
10-12-01, 17:59
<BLOCKQUOTE><font size="1" face="Verdana, Arial">Zitat:</font><HR>Quelle des Jobs ... nicht rankomme ... meine Datensicherungsprozedur beeinflussen[/quote]

dann ist es nicht möglich, das auf sichere Weise zu machen, dazu müssen beide Jobs kooperieren.

Das API-Paar QUSLJOB / QUSRJOBI liefert die benötigte(n) Information(en) über den Job, aber was ist, wenn der Job zwischen holen der Info und dem endSbS wieder loslegt?

[Dieser Beitrag wurde von rmittag am 10. Dezember 2001 editiert.]

Fuerchau
12-12-01, 09:43
Die Quelle des Programmes ist ggf. mit RTVCLSRC wiederherzustellen, ansonsten sollte Ihnen der Hersteller die Quelle herausgeben.

Ob ein SBS beendet werden soll (*CNTRLD) läßt sich über RTVJOBA des eigenen Jobs's dann feststellen. Den Parameter weiß ich im Moment nicht, aber das läßt sich ja mit prompten leicht feststellen.

Das Programm sollte sich dann nicht generell 15 Minuten schlafen legen sondern z.B. in einer Schleife 15 Mal 1 Minute und den Endestatus entsprechend abfragen, sonst dauert der ENDSBS bis zu max. 15 Minuten.