PDA

View Full Version : Zeichensatzprobleme bei Telnet-Durchgriff



schatte
19-11-09, 15:27
Hallo zusammen,

ich habe eine Maschine mit Langid ENU und CCSID 37 (USA), die meisten benutzer arbeiten allerdings mit CCSID 273, also Deutsch.
Verbindet man sich direkt mit einem auf 273 eingestellten Client Access auf diese Maschine, so erscheinen alle Umlaute korrekt. Der Job auf der Maschine läuft auch auf 273.

Wird von einer anderen Maschine (Job + Terminal 273) per Telnet auf die erste Maschine durchgegriffen, so werden die Umlaute alle falsch umgesetzt obwohl der Quell- und Ziel-Job alle CCSID 273 haben. So, als ob man seine Sitzung auf die falsche Codepage gestellt hat.
Allerdings finde ich keine Stelle wo ich noch was diesbezüglich etwas einstellen könnte.

Wo wird denn da die Codepage falsch konvertiert?
Hat da jemand einen Tipp zu?

Gruß
Matthias

Fuerchau
20-11-09, 10:13
Zwischen Job und Terminal wird überhaupt nicht codegewandelt.
Die Hostcodepage MUSS mit der JOB-CCSID übereinstimmen.
Allerdings kann der JOB und das Device beides auf 037 stehen, da zwischen Job und DB dann codegewandelt wird.

Dein Problem sind hier ggf. die MSGF's, denn diese haben default 65535 und werden dann als MSGID aus der DSPF eben nicht angepasst.

Aber was hindert dich denn, alle Terminals grundsätzlich in 273 zu fahren?

schatte
24-11-09, 17:01
Hallo,

das ist ja gerade das Problem. Alle beteiligten Jobs sind auf 273 eingestellt. Sowohl der Quell-Job, der das Telnet ausführt, als auch der durch den Telnet erzeugte neue Job auf der anderen Maschine, sind beide aktiv mit Codepage 273. Die Host-Codepage im Client Access ist auch 273.

Der einzige Unterschied ist halt, dass die Ziel-Maschine eine amerikanische Maschine (QCCSID = 37) ist. Muss da generell noch etwas an irgendeinem Systemwert oder so angepasst werden, damit der TELNET eine ordentliche bzw. am besten gar keine Konvertierung durchführt.

Gruß
Matthias

Fuerchau
24-11-09, 17:21
Wenn du von einer 273-AS/400 auf eine 037-AS/400 durchgreifst, wird auf dem Zielsystem das Device mit der CCSID des Quellsystems erstellt (DSPDEVD).
Der Job auf dem Zielsystem muss demnach auch in 273 geändert werden.
Der Logon-Schirm (QDSIGNON) kann da leider nicht beeinflusst werden.

Alternativ kannst du nur eine CA-Sitzung mit 037 erstellen und direkt auf die Zielmaschine durchgreifen (ggf. die AS/400 als Router verwenden).

PS:
Es könnte auch sein, dass der AS/400-Telnet keine Hostcodepage mitgibt, so dass auf dem Zielsystem die CHRID des Devices entsprehend dem QCCSID bzw. der Sprach-ID erstellt wird.

schatte
24-11-09, 17:37
Hallo,

der Tipp mit den DeviceDescriptions hat schonmal sehr weitergeholfen. In dem TELNET Device steht 37 und im direkt erstellten Device steht 273.
Die Jobs sind jedoch nach der Anmeldemaske selbst auf CCSID 273.

Es muss also an dem Device liegen. Kann ich das irgendwo beinflussen mit welcher CHRID das Device angelegt wird beim Durchgriff mit Telnet. Anpassen des Devices wärend der Job noch läuft wird ja nicht gehen.

Gruß
Matthias

Fuerchau
24-11-09, 18:52
Normalerweise wird das Device mit der Hostcodepage (siehe CA-Sitzung) erstellt.
Standard-Telnet (und wohl auch die AS/400-Telnet) übergibt aber keine Hostcodepage so dass das System aus QCCSID (wenn *HEX aus QLANGID) die CHRID ermittelt.

Da auch kein Device-Name übergebbar ist gibts halt ein Problem.

Lösung a)
Auf dem Zielrechner entsprechende Devices anlegen und per Exit-Programm explizit zuweisen (frag mich jetzt nicht wo das Exit-Programm steht, ggf. QRMTSIGN o.ä.).

Lösung b)
Ggf. funktioniert STRPASTHR da besser, allerdings musst du dazu SNAoverIP einrichten.