Migrazione della serie di messaggi dalla versione 2.1

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.

Condizioni del comando mqsimigratemsgsets

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.

Ciascun file di definizione dei messaggi .mxsd nuovo è un modello di schema XML con annotazioni e ciascun artefatto nella serie di messaggi viene creato nuovamente e mantiene le relative proprietà esistenti nel nuovo modello, con le eccezioni riportate di seguito:
  • Il Nome nel modello WebSphere Message Broker Versione 6.0 è costituito dall'Identificativo del modello della Versione 2.1. Se l'oggetto è un elemento con un identificativo dotato di prefisso, il prefisso viene rimosso poiché il prefisso nella Versione 2.1 indica che l'elemento è locale.
  • Etichetta, Descrizione breve eDescrizione completa e Cronologia sono uniti in un'unica proprietà Documentazione per WebSphere Message Broker Versione 6.0.
  • Ciascun tipo composto diventa un xsd:complexType e un xsd:group associato in WebSphere Message Broker Versione 6.0.
    È possibile che il xsd:complexType creato con tale procedura sia locale o globale. Per impostazione predefinita è locale ma diventa globale se si verifica una delle condizioni riportate di seguito:
    • Il tipo composto non ha riferimenti.
    • Il tipo composto contiene un tipo di base MRM Versione 2.1.
    • Al tipo composto fanno riferimento più elementi.
    • Un messaggio è basato sul tipo composto.
    • È specificato il parametro -g.
    È possibile che il xsd:group creato con tale procedura sia locale o globale. Per impostazione predefinita è locale ma diventa globale se si verifica una delle condizioni riportate di seguito.
    • Il tipo composto è incorporato in modo diretto in un altro tipo composto.
    • Il tipo composto contiene un tipo di base MRM Versione 2.1.
    • Nel tipo composto la composizione tipo Versione 2.1 è simpleUnorderedSet e un contenuto tipo è Versione 2.1chiuso.
    La composizione tipo simpleUnorderedSet è eliminata dal modello in WebSphere Message Broker Versione 6.0.
    • Se il contenuto tipo è chiuso, è sostituita dalla composizione tutti con un messaggio di errore BIP0191.
    • In caso contrario, è sostituita dalla composizione unorderedSet con un messaggio di errore BIP0192.
    • La composizione tipo vuoto è sostituita da una sequenza vuota con un messaggio di avvertenza BIP0193.

  • Nei messaggi incorporati con i valori minOccurs o maxOccurs diversi da 1, le ricorrenze saranno corrette in 1 con un messaggio di avvertenza BIP0162.
  • Ciascun elemento diventa xsd:element. È possibile che il xsd:element creato con tale procedura sia locale o globale, in base ai seguenti criteri applicati nell'ordine specificato:
    1. Se l'elemento non ha riferimenti, è globale.
    2. Se l'elemento è dotato di un identificativo con prefisso ed è un membro di un tipo composto esatto, è locale.
    3. Se l'elemento è dotato di un identificativo con prefisso ed è specificato il parametro -pl, è locale.
    4. Se l'elemento è un tipo composto con un tipo base MRM Versione 2.1, è locale.
    5. Se l'elemento è un membro di più di un tipo composto, è globale.
    6. Se è specificato il parametro -g, è globale.
    7. In caso contrario, l'elemento è locale.
    È possibile che il tipo di xsd:element creato con tale procedura sia:
  • Qualsiasi vincolo valore che appartiene all'elemento è elaborato come riportato di seguito.
    • Un vincolo predefinito imposta l'attributo predefinito di xsd:element.
    • Un vincolo Null Permesso imposta l'attributo nullo di xsd:element.
    • Un vincolo Maschera data modifica il xsd:simpleType di xsd:element (fare riferimento a Mappatura dei tipi semplici MRM ai tipi semplici dello schema).
    • Tutti gli altri vincoli limitano il xsd:simpleType di xsd:element mediante l'applicazione di xsd:facets.

    Qualsiasi vincolo valore senza riferimento è eliminato e vengono generati i messaggi di errore BIP0158 o BIP0159 oppure BIP0160.

    Qualsiasi vincolo valore che risulta nella creazione di un xsd:facet non consentito non è migrato, ma genera un messaggio di erroreBIP0165.
    Nota: Per gli elementi solo di tipo STRING, i vincoli valore MinInclusive e MaxInclusive sono importati invece come annotazioni nascoste per scopi di documentazione poiché non esiste un xsd:facet equivalente.
  • I qualificatori dell'elemento sono eliminati con un messaggio di errore BIP0167 visualizzato una sola volta.
  • Ciascun messaggio diventa un messaggio e un xsd:element globale associato.
  • In un messaggio nel quale vengono utilizzati qualificatori dell'elemento viene eliminata la qualifica con un messaggio di errore BIP0166.
  • Alcune proprietà del formato fisico ridondanti nella Versione 2.1 sono rimosse nel nuovo modello. Se viene rilevata una di queste proprietà con un valore diverso dall'impostazione predefinita, viene generato un messaggio d'errore BIP0164 (o un altro tipo di errore più specifico).
  • Il valore predefinito della proprietà del livello della serie di messaggi TDS Finestra secolo era impostato su 53 nella Versione 2.1. Per la messaggistica standard SWIFT tale valore non è corretto e l'impostazione predefinita solo per lo standard SWIFT è 80. Questo si riflette in un modello importato.

Creazioni mediante il comando mqsimigratemsgsets

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.

Nel nuovo progetto vengono creati una cartella della serie di messaggi e il file messageSet.mset associato. I punti riportati di seguito sono validi per il contenuto della serie di messaggi.
  • Il nome della cartella della serie di messaggi è uguale a quello del nuovo progetto.
  • L'identificativo della serie di messaggi è l'identificativo della serie di messaggi Versione 2.1 originale.
  • La serie di messaggi viene creata specificando che gli spazi dei nomi non sono supportati.
  • Tutti i livelli del formato fisico sono creati nuovamente nella nuova serie di messaggi.
  • Qualsiasi livello di associazione di linguaggio COBOL è eliminato con un messaggio di errore BIP0174.
  • Qualsiasi livello di associazione di linguaggio C è eliminato con un messaggio di errore BIP0173.
  • Qualsiasi stato finalizzato è eliminato con un messaggio di errore BIP0170.
  • Tutte le informazioni di base sono eliminate con un messaggio di errore BIP0172.
  • Qualsiasi operazione di blocco data/ora è eliminata con un messaggio di errore BIP0169. Si riceverà sempre tale messaggio poiché l'operazione di esportazione della Versione 2.1 blocca la serie di messaggi.
Ciascuna categoria dei messaggi rilevata nel file .mrp risulta nella creazione di un nuovo file .category. Nota:
  • Ciascuna transazione è sostituita dalla categoria dei messaggi equivalente, in cui sono contenuti tutti i messaggi nella transazione.
  • Ciascuna categoria di transazione è sostituita dalla categoria dei messaggi equivalente, in cui sono contenuti tutti i messaggi in tutte le transazioni a cui fa riferimento la categoria di transazione.

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.

Se viene specificato il parametro -part, è possibile creare più file .mxsd se si verificano le condizioni riportate di seguito:
  • Il numero di messaggi, elementi e tipi composti nel file supera i 1000.
  • È possibile effettuare la partizione del file .mrp in serie secondarie indipendenti in modo totale.

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.

Esistono due motivi per sostituire tale funzionamento.
  • Si preferisce l'organizzazione della serie di messaggi della Versione 2.1, in cui tutti gli oggetti sono globali. Se viene specificato il parametro -g, è mantenuta tale organizzazione poiché è molto pratica.
  • Si utilizza un tipo composto Tipo contenuto con un valore Definito aperto.

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.

Identificativi con prefisso

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.

Tipo semplice integrato

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).

Tipo composto con un tipo di base MRM

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.

Nello schema XML non esiste un equivalente esatto ed è pertanto stato necessario effettuare quanto riportato di seguito.
  1. Sono stati creati un xsd:complexType globale e un xsd:group in modo normale. Nel xsd:complexType è configurato inoltre l'attributo misto e il relativo contenuto è solo un riferimento al xsd:group globale. Il contenuto complesso è modellato mentre vengono perse le informazioni del tipo base MRM.
  2. Viene introdotta un'estensione di schema specifica, l'elemento composto. È un'unione di un elemento complesso e di un elemento semplice. È implementato in termini di schema come un elemento con un tipo complesso anonimo; di seguito viene riportato il contenuto del tipo.
    • Un xsd:element locale del tipo semplice appropriato (per modellare le informazioni del tipo base MRM). Il tipo semplice è una restrizione del xsd:simple type reale, con un nome particolare (che inizia con ComIbmMrm_BaseValue).
    • Un riferimento di gruppo al xsd:group globale creato nel passo 1 indicato sopra.

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..

Mappatura dei tipi semplici MRM ai tipi semplici dello schema

Di seguito viene indicata la mappatura del tipo semplice.
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
Per il tipo DATETIME, la mappatura del tipo semplice è modificata in modo potenziale dalla presenza di un vincolo valore della Maschera data come indicato di seguito.
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.

Riferimenti correlati
Comando mqsimigratemsgsets
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ad15750_