PDA

View Full Version : Datei in QTEMP läßt sich nicht löschen



Seiten : [1] 2

hoerl
12-11-10, 09:36
Hallo,

habe per CREATE SCHEMA eine Bibliothek erstellt und darin per CREATE Table einige Tabellen erstellt.

Drei dieser Tabellen benötige ich in der weiteren Verarbeitung in der QTEMP als leere Tabellen. Diese werden per CRTDUPOBJ kopiert.

LG0100
LG0110
LG0140

Programm läuft an und bereitet Daten auf (per Embedded SQL).

Nach Beendigung des Jobs sollen diese drei Tabellen wieder gelöscht werden (DLTF).

Bei LG0100 und bei LG0140 klappt dies wunderbar, nur die Datei LG0110 wird nicht gelöscht, es kommt folgende Meldung:

Nachrichten-ID . . . . : CPF3220 Bewertung . . . . . . : 40
Nachrichtenart . . . . : Diagnose
Sendedatum . . . . . . : 12.11.10 Sendezeit . . . . . . : 10:25:44

Nachricht . . . : Operation für Datei LG0110 in QTEMP kann nicht ausgeführt
werden.
Ursache . . . . : Die Operation 1 wurde für die Datei LG0110 in Bibliothek
QTEMP wurde nicht ausgeführt, da die Teildatei LG0110 gerade offen ist oder
mit Sätzen geschlossen wurde, die für COMMIT-Definition *N nicht
festgeschrieben wurden. Die Operationsarten haben folgende Bedeutung:
1 - Befehl DLTF (Datei löschen).
2 - Befehl RMVM (Teildatei entfernen).
3 - Befehl RNMOBJ (Objekt umbenennen).
4 - Befehl MOVOBJ (Objekt übertragen).
5 - Befehl RNMM (Teildatei umbenennen).
6 - Befehl ADDPFCST (Integritätsbedingung für physische Datei hinzufügen).


Nach Prüfung habe ich festgstellt, dass in LG0110 und in LG0140 keine Daten sind, warum kann LG0140 gelöscht werden und LG0110 nicht?

Auch manuell kann LG0110 nicht gelöscht werden.

Was kann ich tun?

Vielen Dank,

Gruss

Michal

KingofKning
12-11-10, 09:58
Mal blöd gefragt: Warum willst Du die löschen? Ist der Job weg, sind die Daten auch weg.

GG

Ich weiß klärt das Problem nicht, aber bevor man sich festbeißt....

hoerl
12-11-10, 10:05
Hier geht es um Daten die immer wieder neu aufbereitet werden müssen. Job ist UserJob, die Files sind erst weg wenn der User sich abmeldet - ich muss die Files vorher löschen.

TARASIK
12-11-10, 10:06
Hallo Michal,
welches Release ist denn auf der ISeries installiert ?

hoerl
12-11-10, 10:11
V5R4

in meinem getesteten Ablauf werden LG0110 und LG0140 nicht befüllt, LG0140 wird gelöscht, LG0110 nicht. Ich verstehe das nicht, da ausser dem CRTDUPOBJ mit den beiden Dateien nichts gemacht wird. In LG0100 werden Daten geschrieben, die lässt sich löschen.

TARASIK
12-11-10, 10:16
Hallo Michal,
da fehlt ein Ptf aus dem aktuellen Cumtape:
IBM SE42205 - OSP-DB-OTHER-F/QDBCRTFI-MSGCPF3220 DLTF ON LOGICAL FILE FAILS WITH MSGCPF3220 F/QDBCRTFI X/0121 - United States (http://www-01.ibm.com/support/docview.wss?uid=nas2fc881019b3e7948f862576e8003c73 29)

Fuerchau
12-11-10, 10:44
Aus Performancegründen würde ich da eher einen "DELETE FROM QTEMP.MYTABLE" empfehlen als ständig einen DLTF/CRTDUPOBJ.

BenderD
12-11-10, 10:51
... wenn wir schon bei Empfehlungen sind: aus Design Gründen würde ich den ganzen Wackelhaufen mit CRTDUPOBJ hin und zurück - und was weiß ich was noch alles, bleiben lassen. Sollte mich nicht wundern, wenn man das durch ein SQL Statement ersetzen kann.

D*B

Pikachu
12-11-10, 11:06
Wer weiß da näheres dazu: Wenn ein Job beendet wird, löscht das System alle Objekte aus der Bibliothek QTEMP. Was passiert eigentlich wenn ein Objekt nicht gelöscht werden kann? Hat dann ein anderer, neuer Job dieses Objekt in seiner QTEMP stehen?

Fuerchau
12-11-10, 11:11
Nein, die QTEMP verbleibt im System ggf. bis zum IPL, RCLSTG oder ENDJOBABN.

Die QTEMP ist keine echte Lib sondern nur ein Zeiger auf einen temporären Plattenbereich.