PDA

View Full Version : Frage zu MONMSG



hs
07-08-02, 09:16
Ich habe folgendes Problem:

in einem CL werden mehrere QRY ausgeführt, die ein Ausgabefile ind er Bibloithek XXX erzeugen.

Während der Datensicherung wird diese Bibiothek kurzzeitig benutzt, d.h. die QRY laufen u.U. auf einen Fehler.

Ich möchte es nun so einrichten, dass im Fehlerfall das CL wartet und nach 10 min die QRY erneut versucht, gegebenenfalls wieder wartet usw.

Ich kenne nur die Möglichkeit, hinter jede Programmzeile dies mit MONMSG abzufangen. Dies ist natürlich in meinem Fall sehr aufwendig, da ich für jede zeile eine eigene Sprungmarke definieren muß.

Geht das auch einfacher, mit einer globalen Fehlerbehandlung?
(Betriebssystem V3.7)

Danke für eure Antworten
HS

malzusrex
07-08-02, 09:28
hi
also meines wissens nach reicht es wenn du als erste zeile nach den var-declarationen eine zeile mit
monmsg cpf0000

ein gibst. diese ist dann für das ganze cl gültig

gruß ronald

malzusrex
07-08-02, 09:37
ups1 man sollte immer alles genau lesen ! meine antwort war dafür generell alle fehler zu ignorieren.

ronald

Fuerchau
07-08-02, 10:34
Natürlich geht das auch einfacher, mit einem zentralen MONMSG und einem GOTO (nach der letzten DCL-Anweisung), das erschwert aber die Fehlerbehandlung, da du nicht weist, welcher RUNQRY denn nun verantwortlich ist.
Und für die Wiederholung genau dieses QRY's benötigst du nun trotzdem einen Label.
Zusätzlich eine Variable, die den fehlerhaften Query kennzeichnet, jede Menge If's usw. usw.

Ein MONMSG nach jedem Query, am besten auch nur auf den erwarteten Fehler, bringt auf jeden Fall mehr Übersichtlichkeit in dein Programm.

lossin
12-08-02, 10:13
Hallo,
wenn eine Datei möglicherweise gesperrt sein kann, versuche ich die vorher mit ALCOBJ zu sperren. Wenn das nicht funktioniert, mache ich einen DLYJOB von 600 Sekunden (10 Minuten) und danach einen Neuversuch mit ALCOBJ.
Nicht vergessen, die Datei danach wieder freizugeben (DLCOBJ).

hs
13-08-02, 09:23
hallo Lossin,

Danke für Deinen Tip.

Da die Dateien von meinen Abfragen nur bis ca. max. 5 min benötigt werden, kann ich das mal versuchen.

Gruß
HS

Gerd
14-08-02, 07:09
Hi,

eine andere Alternative wäre, die Query-Datei mit einer Zeit in Sekunden beim Schlüsselwort WAITFILE zu hinterlegen. Standardmässig steht diese auf *IMMED, was bedeuten würde, dass nicht auf Verfügbarkeit der Datei gewartet wird. Man kann also für 5 Minuten dort auch mal 300 Sekunden angeben.

Man muss nur dafür Sorge tragen, dass die Datensicherung wegen dieser Modifikation nicht abbricht und evtl. die Sicherung im aktiven Zustand (Schlüsselwort SAVACT) durchführt

Gruss Gerd