Anmelden

View Full Version : CPYF und ALCOBJ



Seiten : [1] 2

Rafer19
05-11-10, 09:15
Hallo *all

in meinem Batchjob mache ich einen CPYF, der die Dateien zum kopieren exklusiv braucht...
Kann der Cmd nicht auf die Dateien zugreifen, bricht der Cmd ab.
Soweit bekannt...
Ich kann zwar mit ALCOBJ zuvor prüfen, ob das Objekt, sprich Datei, verfügbar ist,
aber falls nicht, wie kann ich den sperrenden Job ermitteln und beenden (wrkobjlck) oder kann ich die Dateien mit DEALCOBJ entsprerren??

Grüße

Khholm
05-11-10, 09:21
DLCOBJ dürfte nicht gehen, das geht so wie meine nur aus dem JOB, der eine Datei mit ALCOBJ vorher gesperrt hat.

Alternative zu Beenden des sperrenden Jobs wäre ja eventuell warten (DLYJOB), dann nochmals versuchen

man könnten auch eine Meldung senden

Karl-Heinz

BenderD
05-11-10, 09:24
... der Fisch stinkt immer vom Kopf, da ist was mit dem Design oberkrumm, wenn man eine exklusive Sperre braucht.

D*B

Rafer19
05-11-10, 09:42
Karl-Heinz:
der Job läuft nachts.. da hilft keine Nachricht zu senden.

Dieter:
schöne Antwort!!! hilft mir aber nicht weiter, oder war das ein versteckter Hinweis den CPYF nicht zu benutzen???

malzusrex
05-11-10, 09:49
WRKOBJLCK mit *print
Spool in datei kopieren und auswerten.
Wenn die Datei gesperrt ist, steht der Job in der Liste.
DIesen dann "töten"

Gruß
Ronald

BenderD
05-11-10, 09:55
... das war ein Wink mit dem Zaunpfahl (naja, eher dem ganzen Zaun) mal über Alternativen zum Copy File nachzudenken...



Karl-Heinz:
der Job läuft nachts.. da hilft keine Nachricht zu senden.

Dieter:
schöne Antwort!!! hilft mir aber nicht weiter, oder war das ein versteckter Hinweis den CPYF nicht zu benutzen???

Fuerchau
05-11-10, 10:08
Das Problem mag ja sein, dass während des CPYF die Daten nicht verändert werden dürfen damit diese konsistent sind. Da gibts dann tatsächlich nur wenig Möglchkeiten.

Mit WRKOBJLCK (bzw. den API's) kann man zwar die Job's killen, aber wer sagt denn, dass das nicht zu Folgefehlern und somit Inkonsistenzen führt.

Ausserdem können ja wieder Sperren auftreten nachdem die Jobs gekillt wurden, weil diese wieder neu gestartet werden (Prestart-Job's, Job-Warteschlange ...).

Wenn du Inkonsistenz mit Job-Kills akzeptierst, kannst du auch gleich den CPYF ohne ALCOBJ machen, was ggf. zum gleichen Ergebnis führt.

Ein DLCOBJ entsperrt nur, was vorher mit ALCOBJ im selben Job gesperrt wurde.

So wie Dieter es in seiner charmanten Art beschreibt: Die Lösung muss mit dem Skalpell und nicht mit dem Hammer erfolgen.

Rafer19
05-11-10, 10:08
liebe 'Kollegen',

habe zwischenzeitlich ein bischen mit dem CPYF Cmd rumgespielt und konnte den Fehler nicht reproduzieren... d.h. FileA wurde nach FileB kopiert, selbst wenn ich in einer anderen Session mit UPDDTA auf FileA zugreife..!!
Muss daher abwarten, wenn der Fehler wieder auftritt...
Danke!

Dieter:
wirst du jetzt zum Orakel, oder weißt du keine Alternativen??

Fuerchau
05-11-10, 10:10
Der CPYF schlägt dann fehl, wenn die Datei von jemandem bereits exclusiv gesperrt wurde (Datensicherung?).

BenderD
05-11-10, 10:18
... für Lösungsvorschläge braucht man schon ein paar mehr Informationen über die Anforderungen, die man meint mit einem CPYF abzudecken...


liebe 'Kollegen',

habe zwischenzeitlich ein bischen mit dem CPYF Cmd rumgespielt und konnte den Fehler nicht reproduzieren... d.h. FileA wurde nach FileB kopiert, selbst wenn ich in einer anderen Session mit UPDDTA auf FileA zugreife..!!
Muss daher abwarten, wenn der Fehler wieder auftritt...
Danke!

Dieter:
wirst du jetzt zum Orakel, oder weißt du keine Alternativen??