PDA

View Full Version : cpytostmf frommbr mit Qsys.lib ohne /



Robi
05-10-16, 08:23
Moin zusammen,

2 verschiedene Anwender rufen ein CL,
bei einem klappt es, bei dem anderen nicht.
Hier die Joblogs.
Man beachte, das der / vor dem QSYS.LIB fehlt

Hat geklappt:


Nachricht . . . : 7200 - CPYTOSTMF
FROMMBR('QSYS.LIB/QTEMP.LIB/O12518JT.file/O12518JT.mbr')
TOSTMF('/qntc/vmfileqqq01/xxx/edv/as400/neue
mandanten/zzz/Statusmeldungen/ST020916021758.TXT') STMFOPT(*REPLACE)
ENDLINFMT(*CRLF) STMFCODPAG(1252)
02.09.16 02:18:11,576041 QP0LCCMN QSYS *STMT O12518JC BE
Ausgangsmodul . . . . . . . : QP0LCCMN
Ausgangsprozedur . . . . . : Qp0lCmnSnd__FPcT1iN21T3
Anweisung . . . . . . . . . : 10
Nachricht . . . : Objekt kopiert.
Ursache . . . . : Objekt /QSYS.LIB/QTEMP.LIB/O12518JT.file/O12518JT.mbr
wurde erfolgreich zu Objekt /qntc/vmfileqqq01/xxx/edv/as400/neue
mandanten/yyy/Statusmeldungen/ST020916021758.TXT in CCSID 1252 kopiert.





hat nicht geklappt


Nachricht . . . : 7200 - CPYTOSTMF
FROMMBR('QSYS.LIB/QTEMP.LIB/O12518JT.file/O12518JT.mbr')
TOSTMF('/qntc/vmfileqqq01/xxx/edv/as400/neue
mandanten/yyy/Statusmeldungen/ST210916130920.TXT') STMFOPT(*REPLACE)
ENDLINFMT(*CRLF) STMFCODPAG(1252)
0 21.09.16 13:09:31,940449 QP0LCCMN QSYS *STMT O12518JC BE
Ausgangsmodul . . . . . . . : QP0LCCMN
Ausgangsprozedur . . . . . : Qp0lCmnSnd__FPcT1iN21T3
Anweisung . . . . . . . . . : 10
Nachricht . . . : Objekt ist kein QSYS.LIB-Objekt. Das Objekt ist
/home/QPGMR#MG/QSYS.LIB/QTEMP.LIB/O12518JT.file/O12518JT.mbr.
Ursache . . . . : Für die Operation wurde ein Objekt im Dateisystem QSYS.LIB
oder im Dateisystem QSYS.LIB des unabhängigen ASP erwartet. Objekt
/home/QPGMR#MG/QSYS.LIB/QTEMP.LIB/O12518JT.file/O12518JT.mbr entspricht
keinem Objekt im Dateisystem QSYS.LIB oder im Dateisystem QSYS.LIB des



Was ist bei den Anwendern unterschiedlich eingestellt, das das System so unterschiedlich reagiert?

Danke
Robi

RobertMack
05-10-16, 08:38
Prüfe mal, ob im USRPRF QPGMR#MG als Benutzerverzeichnis '/home/QPGMR#MG' eingetragen ist...

hel400
05-10-16, 08:47
Der Job geht von unterschiedlichen "Start"-Directories aus (wie oben schon geschrieben).
Daher den Pfad komplett angeben (mit Schrägstrich) oder vorher mit "CHDIR DIR('/')" in's root positionieren.

Robi
05-10-16, 08:49
Moin Robert,

Danke, ja, das ist so.
bei dem anderen Anwender ist auch /home/sein_name eingetragen.
aber das existiert nicht.

ein /home/qpgmr#mg gibt es.

Das System setzt also das Benutzerverzeichnis als 'start Path', das verstehe ich.
Aber wenn es das Benutzerverzeichnis nicht gibt ... hätte ich einen Fehler erwartet,
keine Interpretation und den wechsel in ein anders File-System.

Robi

Fuerchau
05-10-16, 09:07
An wen soll der Fehler denn gesendet werden?
Soll die Anmeldung dann scheitern?
Das Standard-Home-Verzeichnis ist mal irgendwann eingeführt worden.
Jeder Job hat ein "Current Directory".
Defaultmäßig ist das eben "/", was durch die Anmeldung versucht wird zu überschreiben.

Aber unabhängig davon sollte man in seinen Pfaden nie relative Pfade verwenden wenn man nicht vorher ein explizites "CD/CHDIR" durchgeführt hat. Schließlich kann jedes Programm zu jeder Zeit den aktuellen Pfad verbiegen.

Robi
05-10-16, 09:13
Ja, ich hätte einen Abbruch erwartet. (bei jedem Anwender)
Durch das .Lib hätte ich erwartet, das das System weiss das OS/400 und nicht das IFS gemeint ist.

Das Verhalten in abh. von der Existenz des eingetragenen Benutzerverzeichnis finde ich unschön!

Das Pgm läuft seid 2012 fehlerfrei obwohl es falsch programmiert ist.
Der / wurde schlichtweg vergessen!

Nun kommt ein neuer Anwender in die Abteilung, und plötzlich knallt es.

Fuerchau
05-10-16, 09:49
Nur weil ein unbehobener Fehler mal irgendwann knallt kann man das nicht dem OS/400 vorwerfen.
Außerdem kann dich ja niemand hindern, unter "/Home/MyUser" auch ein Verzeichnis "QSYS.LIB" anzulegen. Der Name ist doch nicht geschützt sondern nur das IFS "/QSYS.LIB". Ein eigenes "/Home/MyUser/QSYS.LIB" ist dem System herzlich egal.

Pikachu
05-10-16, 10:52
Im Hilfetext des Parameters HOMEDIR der Befehle CRTUSRPRF, CHGUSRPRF und CHGPRF ist genau beschrieben, was passiert.


Das System setzt also das Benutzerverzeichnis als 'start Path', das verstehe ich.
Aber wenn es das Benutzerverzeichnis nicht gibt ... hätte ich einen Fehler erwartet,
keine Interpretation und den wechsel in ein anders File-System.

Robi
05-10-16, 16:10
Danke,
ja, sch....ade es steht da und wir haben es nie gelesen ...
(wie so viele andere Bed.help. auch nicht...)

Danke
Robi