PDA

View Full Version : CPYFRMIMPF und QNTC



plinzen
19-10-06, 09:16
Hallo,

folgendes Problem, ich habe auf einem PC in der gleichen Domäne wie die iSeries eine CSV-Datei liegen, die ich per CPYFRMIMPF in eine iSeriesdatei kopieren möchte. Zugriff über QNTC funktioniert, also über WRKLNK kann ich ohne Probleme zur Datei navigieren und sie mir auch anzeigen lassen.
Wenn ich nun allerdings den CPYFRMIMPF in einem CL-Programm ausführe werden die Daten zwar kopiert, allerdings dauert dies ewig. :confused:

CPYFRMIMPF FROMSTMF('/QTNC/PCCSNEU/TEMP/MDE/TEST.CSV') TOFILE(SCIHSS) +
RCDDLM(*CRLF) STRDLM(*NONE) FLDDLM(';') +
DECPNT(*COMMA) RPLNULLVAL(*FLDDFT)

Im Joblog erscheint folgende Ausgabe:
Sitzungsinitialisierungsfehler bei Netzwerk-Server NB-UBS-AW.
Sitzungsinitialisierungsfehler bei Netzwerk-Server NBBG.
Sitzungsinitialisierungsfehler bei Netzwerk-Server PCGERNER.
Sitzungsinitialisierungsfehler bei Netzwerk-Server PCWOZ.
Sitzungsinitialisierungsfehler bei Netzwerk-Server SOVMSV.

Anscheinend wird versucht sich an irgendwelchen PC's im Netzwerk anzumelden??? Es sind allerdings nicht immer die gleichen PCs sondern manchmal stehen auch noch andere Namen drin.

Ich habe auch schon per MKDIR DIR('/QNTC/PCCSNEU') ein Verzeichnis erstellt.

Weiterhin habe ich probiert per COPY die Datei vom PC in ein "echtes" IFS-Verzeichnis zu kopieren und von dort den CPYFRMIMPF durchzuführen.

COPY OBJ('/QNTC/PCCSNEU/TEMP/MDE/TEST.CSV') +
TODIR('/TEMP/MDE') REPLACE(*YES)

Der COPY-Befehl funktioniert wunderbar, allerdings ist der CPYFRMIMPF immer noch so quälend langsam und das JOBLOG gibt die gleiche Meldung wie oben aus, obwohl doch dann hier nicht mehr von einer Netzwerkfreigabe kopiere?

Betriebssystem: V5R3M0
Die ganzen Befehle wurden in ein CL programmiert.

Mich würde jetzt interessieren warum der CPYFRMIMPF so langsam ist, bzw. was hier falsch läuft?

Vielen Dank für Antworten.

Fuerchau
19-10-06, 09:28
Prüfe mal, ob der CPYFRMIMPF auch tatsächlich von der Kopie und nicht weiterhin vom QNTC läuft.

Was der CPYFRMIMPF da so treibt weiß ich nicht (mit dem gibts wohl öfter Probleme), aber der Hauptgrund ist hier die CCSID. QNTC und damit eben die Windows-Server unterstützt keine CCSID. Hier liegt ggf. das Zeitproblem, da CPYFRMIMPF nun irgendwie eine Codewandlung erkennen muss.

Der COPY (oder CPY oder QHS CMD('cp ...')) kopiert einfach binär und das geht mit Leitungsgeschwindigkeit.
Der MKDIR hilft beim 1. Zugriff die langwierige Netzwerk-Suche zu umgehen.

plinzen
19-10-06, 14:15
Also ich hab nun rausgefunden was da passiert ist. :)
Lag aber nicht an dem CPYFRMIMPF, sondern in einem anderen Programm von dem der CPYFRMIMPF aufgerufen wurde.
Grund war das in diesem anderen Programm ein CHGCURDIR auf die Netzfreigabe gemacht wurde. Und anscheinend wird wenn ich danach mit CPYFRMIMPF oder WRKLNK zugreife die ganze Domäne durchgescannt, weil das CURDIR eine Netzfreigabe ist. Die im Joblog ausgegebenen Meldungen (Sitzungsinitialisierungsfehler bei Netzwerk-Server NB-UBS-AW) kamen immer von PCs zurück, die im Moment nicht eingeschalten waren. :D

Vielen Dank für die Infos, jetzt müsste ich nur noch wissen, wie ich ein Verzeichnis auf Existenz prüfen kann?

Fuerchau
19-10-06, 14:33
Nur eingeschränkt mit:
CHKOUT <= Objekt sperren
CHKIN <= Objekt wieder freigeben

Es gibt unterschiedliche CPF-Meldungen wenn das Objekt nicht da ist oder nicht gesperrt werden kann.