View Full Version : JAVA stderr-Ausgabe in ifs-Datei stellen
flieger_siggi
18-04-12, 12:14
Hallo,
ich versuche vergeblich, die Ausgaben der JVM in stderr in eine ifs-Datei mit der CCSID 1252 auszugeben, um sie auch aus Windows heraus lesen zu können.
??????????????????...
Hat da jemand vielleicht bereits Erfahrungen damit?
Siegfried
Das sollte mit der Eigenschaft "os400.stderr" gehen, siehe hier (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzaha/stdsys.htm).
Wie rufst du denn das Java-Programm auf?
... it depends:
wie wär's mit:
qsh cmd('java GidEdNet 2> schade.txt')
D*B,
für den sich das verdächtig nach 2. bester Idee anhört
Das Problem bei der Ausgabeumleitung bzw. OVRDBF wird die neue Datei im IFS immer mit der aktuellen Job-CCSID (bei HEX, Default-CCSID) erstellt.
Entweder man kopiert sie anschließend mit CPY in eine neue Datei, gibt die CCSID mittels obiger Eigenschaft "os400.stderr" bzw. "os400.stdout" oder man erstellt die Datei mit z.B. "echo >err.txt; touch -C 1252 err.txt; ....".
flieger_siggi
18-04-12, 12:46
schnell seid ihr...
os400.stderr geht, aber mit der CCSID von meinem interaktiven Job. Ich starte java per shell script und das wiederum rufe ich per sbmjob(cmd('strqsh script')) auf. Auch die Änderung der CCSID beim sbmjob bringt keine Änderung der Datei-CCSID von stderr.
Ich will aber eine bestimmte(1252) CCSID haben...
Siegfried
... Ausgabeumleitung geht auch in eine bestehende Datei und die darf auch CCSID 1252 haben...
D*B
Ergänze dein Script mit folgenden Befehlen:
echo >stderr.txt;
touch -C 1252 stderr.txt;
java ..... 2>>stderr.txt;
Wichtig ist, dass die Datei vor der Befüllung die richtige CCSID haben muss.
Die einfache Umleitung "2>stderr.txt" erstellt immer eine neue Datei und löscht die Alte.
Die ergänzende Umleitung "2>>stderr.txt" hängt die Daten an, die CCSID wird berücksichtigt.
flieger_siggi
18-04-12, 12:51
wenn ich das per os400.stderr angebe, wird die Datei immer neu erstellt...
flieger_siggi
18-04-12, 13:02
ok, ich versuche das gerade...
wie muss ich das schreiben, wenn ich sowohl stdout(1) als auch stderr(2) in 2 unterschiedliche Dateien schreiben will?
Vielen Dank schon mal, für eine Datei geht's schon:D:D
Siegfried
Probier mal mit der QSHELL-Variable (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzahz/variable.htm) QIBM_CCSID ab V5R2:
SBMJOB CMD(QSH CMD('export QIBM_CCSID=1252; script'))