Per effettuare la migrazione della serie di messaggi dalla Versione 2.1 alla Versione 6.0, utilizzare il comando mqsimigratemsgsets. Se si effettua la migrazione dalla Versione 5.0 alla Versione 6.0, non è necessario utilizzare tale comando.
Non modificare il file della serie di messaggi in modo manuale tra l'esportazione dallaVersione 2.1 e l'importazione in WebSphere Message Broker Versione 6.0 poiché saranno generati degli errori, indicati dai seguenti messaggi di errore e avvertenza nel prospetto: BIP0141, da BIP0142 a BIP0157 e BIP0163.
Qualsiasi vincolo valore senza riferimento è eliminato e vengono generati i messaggi di errore BIP0158 o BIP0159 oppure BIP0160.
Per ciascun file .mrp rilevato, viene creato un nuovo progetto della serie di messaggi con un nome derivato dal livello e dal nome della serie di messaggi nella Versione 2.1. Il programma di utilità esegue tale operazione aggiungendo un suffisso al nome della serie di messaggi per tutti i valori di livello diversi da 1. Tale elaborazione ripristina la mappatura di tipo uno-a-uno e abilita il rilevamento, una volta fornito il nome, di una sola serie di messaggi mediante il broker.
Ad esempio, una serie di messaggi dellaVersione 2.1 composta dal nome SWIFT e di livello 1, viene modificata nella Versione 6.0 con il nome della serie di messaggi SWIFT, mentre una serie di messaggi della Versione 2.1 composta dal nome SWIFT e di livello 2 viene modificata nella Versione 6.0 con il nome SWIFT_2.
Un file di definizione dei messaggi singolo .mxsd viene creato nella serie di messaggi con lo stesso nome della serie di messaggi e nello spazio dei nomi predefinito (notarget), a meno che non sia presente il parametro -part.
Nella Versione 2.1, tutti gli elementi e tipi composti sono globali. Nella Versione 6.0 è possibile che xsd:elements e xsd:complex types siano globali o locali. Quando si effettua la migrazione di una serie di messaggi della Versione 2.1, è possibile che molti elementi e tipi composti globali nella Versione 2.1 siano convertiti in xsd:elements e xsd:complex types locali nella Versione 6.0 in base alle regole riportate sopra.
Ciò significa che è possibile che il contenuto valido di un tipo composto sia qualsiasi oggetto nella serie di messaggi, in base alle regole della proprietà Composizione Tipo. In tal caso, il tipo composto non è modellato con contenuto esplicito.
È possibile che per tale motivo alcuni elementi siano resi locali anziché globali dal comando mqsimigratemsgsets in modo errato. Se si utilizzaDefinito aperto e si verifica un errore di convalida del runtime BIP5372E, eseguire di nuovo il comandomqsimigratemsgsets con il parametro -g.
Nella Versione 2.1 un identificativo con prefisso è progettato per indicare che un elemento è locale. È tuttavia possibile che un elemento con un identificativo con prefisso sia in realtà utilizzato in più tipi composti, diventando globale. In tal caso, viene creato un xsd:element globale in base alle regole riportate sopra. Viene generato inoltre un messaggio di avvertenza BIP0195 poiché si tratta di un utilizzo non corretto degli identificativi con prefisso ed è possibile che si verifichi la creazione di xsd:elements globali duplicati. Ad esempio, A^X e B^X, ma entrambi sono utilizzati più di una volta e risultano in due xsd:elements globali con il nome X.
Se vengono creati duplicati, eseguire nuovamente il comando mqsimigratemsgsets specificando il parametro -pl. Tutti gli elementi di riferimento con identificativi con prefisso verranno creati comexsd:elements locali.
Per i tipi semplici integrati nei tipi composti è necessaria una gestione particolare poiché non è possibile utilizzare il modello di schema con tale struttura. Poiché i tipi semplici integrati sono obsoleti, sostituirli utilizzando l'attributo misto contenuto nel tipo xsd:complex.
I tipi semplici integrati sono stati introdotti in modo primario per modellare un elemento XML complesso in cui sono contenuti valori dati inseriti in varie posizioni tra gli elementi child. Ogni valore dei dati di tale genere è stato modellato in modo esplicito da un tipo semplice integrato, che funzionava come segnaposto per il valore e ne forniva il tipo semplice.
Nello schema XML non esiste un equivalente esatto. Il formato più simile è l'attributo misto xsd:complexType. Questo tuttavia indica solo che è possibile visualizzare il testo prima o all'interno degli elementi child. Non implica niente in relazione alla posizione o al tipo dei dati del testo.
Per mantenere questa semantica, è introdotta un'estensione dello schema, denominata Tipo semplice integrato. Si tratta di un xsd:element locale non definito del tipo semplice appropriato. Il tipo è una restrizione del xsd:simple type reale, con un nome particolare (che inizia con ComIbmMrm_Anon).
Una situazione di questo tipo genera un messaggi di avvertenza BIP0161 ed è necessaria una gestione particolare poiché non è possibile utilizzare il modello di schema con tale struttura composta. Gli elementi composti sono obsoleti; sostituire pertanto l'utilizzo degli elementi composti con l'utilizzo degli elementi normali che fanno riferimento al xsd:complexType globale, come riportato in 1 e utilizzare l'attributo misto.
Tali tipi composti sono stati introdotti in modo primario per modellare un elemento XML complesso in cui sono contenuti valori dati ed elementi child. Un elemento di un tipo complesso del genere dispone di contenuto complesso come un normale elemento complesso e inoltre di un valore come un elemento semplice (le informazioni del tipo di base MRM).
Nello schema XML non esiste un equivalente esatto. Il formato più simile è l'attributo misto xsd:complexType. Questo tuttavia indica solo che è possibile visualizzare il testo prima o all'interno degli elementi child. Non implica niente in relazione alla posizione o al tipo dei dati del testo.
Un elemento composto viene creato per ciascun elemento di riferimento del tipo composto. È possibile effettuare tale operazione solo se l'elemento era membro di un altro tipo composto.
Grazie alla combinazione di questi due eventi è possibile mantenere un utilizzo significativo di tali tipi composti in un messaggio poiché le informazioni del tipo di base MRM vengono perse solo quando non sono utilizzate in modo attivo nel messaggio.
I tipi di dati particolari creati dalle situazioni descritte nelle sezioni precedenti, iniziando da ComIbmMrm, sono definiti in uno schema XML denominato .wmq21.mxsd, incluso un ciascun file di definizione dei messaggi creato mediante il comando mqsimigratemsgsets..
Tipo MRM | Tipo schema |
---|---|
BINARY | xsd:hexBinary |
BOOLEAN | xsd:boolean |
DECIMAL | xsd:decimal |
DATETIME | xsd:dateTime (fare riferimento alla tabella seguente) |
FLOAT | xsd:float |
INTEGER | xsd:int |
STRING | xsd:string |
Maschera data MRM DATETIME | Tipo schema |
---|---|
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 |
Se la Maschera data non è indicata nell'elenco precedente, la mappatura del valore DATETIME viene eseguita su xsd:time o su xsd:dateTime con un messaggio di avvertenza BIP0175, in base alla presenza o meno di un componente dell'ora nella Maschera data. È tuttavia possibile che la mappatura provochi la visualizzazione di errori nell'elenco delle attività dopo l'importazione.
Se l'elemento interessato dispone di vincoli valore Valore predefinito o Minimo incluso o Max Inclusive oppure Numerazione della Versione 2.1, i relativi valori non corrispondono allo spazio lessicale per un xsd:time o un xsd:dateTime e la convalida non riesce. È necessario effettuare le correzioni in modo manuale utilizzando l'editor.
Lo stesso errore di elenco delle attività viene visualizzato per qualsiasi tipo DATETIME della Versione 2.1 che fornisce un vincolo Valore predefinito o Minimo incluso o Massimo incluso oppure Numerazione in cui il valore non è specificato in modo completo. Ad esempio, la Maschera data CCYY-MM, Numerazione 2003 era consentita nella Versione 2.1 poiché era interpretata come 2003-01 in fase di runtime. Nel nuovo modello tuttavia è necessario che il valore corrisponda allo spazio lessicale del tipo semplice ed è necessario che includa -01.