Kürzlich habe ich eine Anfrage für eine Anwendung: A sendet Bestellungen an T über MQ. Die von A gesendeten Nachrichten verwenden CCSID 500. Während die Bestellung am T-Ende empfangen wird, sind die meisten Bestellungen im CCSID 500-Format. Bei einigen Aufträgen wurde die CCSID jedoch auf 1047 geändert. In diesem Fall stoppt die A-T-Schnittstelle und die Aufträge müssen manuell in die Datenbank eingefügt werden. Können Sie uns mitteilen, unter welchen Umständen sich diese CCSID ändern könnte? Und gibt es Konfigurationsänderungen, die entweder auf T- oder A-Seite vorgenommen werden können, um dies zu verhindern?Websphere MQ Problem
Antwort
Die CCSID wird von der Anwendung festgelegt, die MQPUT ausführt. Wenn es leer gelassen wird, wird es von der in der MQ-Installation verwendeten Basis gefüllt. Die MQGET-Anwendung kann eine Nachrichtenabrufoption festlegen, um sie in eine gewünschte CCSID zu konvertieren. Im Anhang des "Anwendungsprogrammierreferenz" im Knowledge Center finden Sie Tabellen für alle möglichen Übersetzungen.
Wenn Sie sich mit MQFMT_STRING
Nachrichten beschäftigen, sollten Sie GMO_CONVERT
verwenden können, damit alle Nachrichten auf der T-Seite in die CCSID konvertiert werden.
Möglicherweise haben Sie auf der Empfängerseite ein Problem mit fehlenden Übersetzungstabellen. Überprüfen Sie das MQ-Installationsverzeichnis /IBM/WebSphere MQ/conv/table
.
Hier ist eine kleine Notiz von IBM, die Unterschiede zwischen EBCDIC-Codepages beschreiben: https://www.ibm.com/support/knowledgecenter/SSEPEK_10.0.0/com.ibm.db2z10.doc.char/src/tpc/db2z_codeptdiffebcdic.dita
Quelle: http://www-01.ibm.com/support/docview.wss?uid=swg27005729