Verwenden Sie zur Migration von Version 2.1 nach Version 6.0 den Befehl mqsimigratemsgsets. Beim Migrieren von Version 5.0 nach Version 6.0 muss dieser Befehl nicht verwendet werden.
Ändern Sie die Nachrichtengruppendatei zwischen dem Exportieren aus Version 2.1 und dem Importieren in WebSphere Message Broker Version 6.0 nicht, da dies Fehler verursachen würde, die durch folgende Warnungen und Fehlernachrichten im Bericht angezeigt werden: BIP0141, BIP0142 bis BIP0157 und BIP0163.
Alle nicht referenzierten Wertvorgaben werden gelöscht, wobei die Warnung BIP0158, BIP0159 oder BIP0160 ausgegeben wird.
Für jede erkannte .mrp-Datei wird ein neues Nachrichtengruppenprojekt mit einem Namen erstellt, der vom Namen und von der Stufe der Nachrichtengruppe in Version 2.1 abgeleitet wird. Das Dienstprogramm fügt dabei dem Namen der Nachrichtengruppe für alle Ebenenwerte, die nicht 1 sind, ein Suffix hinzu. Durch diesen Prozess wird die 1:1-Zuordnung wiederhergestellt, und der Broker ist in der Lage, nur eine Nachrichtengruppe mit dem angegebenen Namen zu lokalisieren.
Beispiel: Eine Nachrichtengruppe der Version 2.1 mit dem Namen 'SWIFT' und Stufe '1' hat nach der Migration in Version 6.0 den Nachrichtengruppennamen 'SWIFT', während eine Nachrichtengruppe der Version 2.1 mit dem Namen 'SWIFT' und Stufe '2' nach der Migration in Version 6.0 den Namen 'SWIFT_2' hat.
Eine einzelne mxsd-Nachrichtendefinitionsdatei mit demselben Namen wie die Nachrichtengruppe wird in der Nachrichtengruppe und im Standardnamespace (notarget) erstellt, außer wenn der Parameter -part angegeben ist.
In Version 2.1 sind alle Elemente und Verbundtypen global. In Version 6.0 können die Typen xsd:elements und xsd:complex types global oder lokal sein. Beim Migrieren einer Version 2.1-Nachrichtengruppe stellen Sie möglicherweise fest, dass viele Elemente und Verbundtypen, die in Version 2.1 global waren, in Version 6.0 gemäß den oben genannten Regeln in lokale Typen xsd:elements und xsd:complex types konvertiert wurden.
Das heißt, dass der gültige Inhalt eines Verbundtyps ein beliebiges Objekt in der Nachrichtengruppe sein kann, sofern die Regeln für die Eigenschaft Typzusammensetzung dies zulassen. In diesem Fall wurde der Verbundtyp in der Regel nicht mit einem expliziten Inhalt modelliert.
Dies kann dazu führen, dass der Befehl mqsimigratemsgsets fälschlicherweise aus bestimmten Elementen nicht globale, sondern lokale Elemente macht. Wenn Sie Offen/definiert verwenden und nach der Migration zur Laufzeit der Gültigkeitsfehler BIP5372E auftritt (was vorher nicht der Fall war), führen Sie den Befehl mqsimigratemsgsets erneut mit dem Parameter -g aus.
In Version 2.1 zeigte eine ID mit einem Präfix an, dass es sich bei einem Element um ein lokales Element handelte. Es ist jedoch möglich, dass ein Element mit einer ID mit Präfix tatsächlich in mehreren Verbundtypen verwendet wird und dadurch zu einem globalen Element wird. Wenn dies der Fall ist, wird ein globales xsd:element gemäß den oben genannten Regeln erstellt. Außerdem wird die Warnung BIP0195 ausgegeben, weil es sich um eine missbräuchliche Verwendung von IDs mit Präfix handelt, die dazu führen kann, dass doppelte globale xsd:elements-Elemente erstellt werden. Beispiel: Es gibt die Elemente A^X und B^X, die aber beide mehrfach verwendet werden, mit dem Ergebnis, dass zwei xsd:element-Elemente mit dem Namen X erstellt werden.
Falls doppelte Elemente erstellt werden, können Sie den Befehl mqsimigratemsgsets erneut ausführen, diesmal mit dem Parameter -pl. Dieser sorgt dafür, dass alle referenzierten Elemente mit IDs mit Präfix als lokale xsd:element-Elemente erstellt werden.
Eingebettete einfache Typen in Verbundtypen erfordern eine spezielle Behandlung, weil das Schemamodell mit diesem Konstrukt nicht umgehen kann. Da eingebettete einfache Typen nicht weiter unterstützt werden, sollten Sie sie durch das Attribut 'Gemischt' des enthaltenden Typs xsd:complex ersetzen.
Eingebettete einfache Typen wurden in erster Linie zu dem Zweck eingeführt, ein komplexes XML-Element zu modellieren, das Datenwerte enthielt, die zwischen untergeordneten Elementen eingestreut wurden. Jeder dieser Datenwerte wurde explizit durch einen eingebetteten einfachen Typ modelliert, der als Platzhalter für den Wert fungierte und auch den einfachen Typ lieferte.
Im XML-Schema gibt es dazu kein Äquivalent. Am besten geeignet ist das Attribut 'Gemischt' des Typs xsd:complexType. Dieses Attribut legt jedoch nur fest, dass Text vor oder zwischen untergeordneten Elementen stehen kann. Es sagt nichts über die Position oder den Datentyp des Textes aus.
Um diese Semantik beizubehalten, wird eine Schemaerweiterung eingeführt, die als 'Embedded Simple Type' (Eingebetteter einfacher Typ) bezeichnet wird. Dabei handelt es sich um ein nicht benanntes lokales xsd:element des entsprechenden einfachen Typs. Der Typ selbst stellt eine Einschränkung des tatsächlich zu Grunde liegenden Typs xsd:simpleType dar, aber mit einem speziellen Namen (beginnend mit ComIbmMrm_Anon).
Diese Situation führt dazu, dass die Warnung BIP0161 ausgegeben wird, und erfordert eine spezielle Behandlung, weil das Schemamodell mit diesem 'Verbund'-Konstrukt nicht umgehen kann. Da Verbundelemente nicht weiter unterstützt werden, wird dringend empfohlen, stattdessen normale Elemente zu verwenden, die auf den globalen xsd:complexType (siehe Beschreibung unter 1 unten) verweisen und das Attribut 'mixed' nutzen.
Solche Verbundtypen wurden in erster Linie zu dem Zweck eingeführt, ein komplexes XML-Element zu modellieren, das sowohl einen Datenwert als auch untergeordnete Elemente enthielt. Das heißt, ein Element dieses komplexen Typs enthält nicht nur komplexen Inhalt wie ein normales komplexes Element, sondern auch einen Wert wie ein einfaches Element (die MRM-Basistypinformation).
Im XML-Schema gibt es dazu kein Äquivalent. Am besten geeignet ist das Attribut 'mixed' des xsd:complexType. Dieses Attribut legt jedoch nur fest, dass Text vor und zwischen (oder nur zwischen) untergeordneten Elementen stehen kann. Es sagt nichts über die Position oder den Datentyp des Textes aus.
Ein Verbundelement wird für jedes Element erstellt, das auf den Verbundtyp verweist. Dies ist jedoch nur dann möglich, wenn das Element selbst Mitglied eines anderen Verbundtyps war.
Die Kombination dieser beiden Dinge bedeutet, dass die aussagefähige Verwendung solcher Verbundtypen innerhalb einer Nachricht erhalten bleibt, da die MRM-Basistypinformation nur verloren geht, wenn sie in einer Nachricht niemals aktiv verwendet wurde.
Die Sonderdatentypen, die in den oben beschriebenen Situationen erstellt werden und mit ComIbmMrm beginnen, sind in einem XML-Schema namens .wmq21.mxsd definiert, das in jeder Nachrichtendefinitionsdatei enthalten ist, die mit dem Befehl mqsimigratemsgsets erstellt wird.
MRM-Typ | Schema-Typ |
---|---|
BINARY | xsd:hexBinary |
BOOLEAN | xsd:boolean |
DECIMAL | xsd:decimal |
DATETIME | xsd:dateTime (siehe folgende Tabelle) |
FLOAT | xsd:float |
INTEGER | xsd:int |
STRING | xsd:string |
MRM DATETIME-Datumsvorlage | Schema-Typ |
---|---|
CCYY-MM-DDThh:mm:ss.s | xsd:dateTime |
CCYY-MM-DD | xsd:date |
CCYY-MM | xsd:gYearMonth |
CCYY | xsd:gYear |
--MM-DD | xsd:gMonthDay |
--MM | xsd:gMonth |
---DD | xsd:gDay |
Thh:mm:ss.s | xsd:time |
Wenn die Datumsvorlage in dieser Liste nicht enthalten ist, wird DATETIME entweder einem Typ xsd:time oder einem Typ xsd:dateTime zugeordnet, wobei die Warnung BIP0175 ausgegeben wird, abhängig davon, ob die Datumsvorlage nur eine Uhrzeitkomponente hatte oder nicht. Beachten Sie jedoch, dass diese Zuordnung Fehler verursachen kann, die nach dem Import in der Taskliste erscheinen.
Wenn dem Element auch Vorgaben zu Version 2.1 für Standardwert, Eingeschlossener Mindestwert, Eingeschlossener Maximalwert oder Aufzählung zugeordnet wurden, entsprechen diese Werte nicht dem lexikalischen Speicherbereich für xsd:time bzw. xsd:dateTime. Daher schlägt die Validierung fehl. Dies muss im Editor manuell korrigiert werden.
Derselbe Fehler in der Taskliste wird auch für jeden DATETIME-Typ der Version 2.1 angezeigt, der eine Wertvorgabe für Standardwert, Eingeschlossener Mindestwert, Eingeschlossener Maximalwert oder Aufzählung lieferte, bei dem der Wert nicht vollständig spezifiziert war. Beispielsweise war die Datumsvorlage 'CCYY-MM', Aufzählung '2003' in Version 2.1 zulässig, da es zur Laufzeit als '2003-01' interpretiert wurde. Im neuen Modell muss der Wert jedoch mit dem lexikalischen Leerzeichen des einfachen Typs übereinstimmen, d. h., er muss die Angabe '-01' enthalten.