Convalida dei messaggi

Prima di iniziare:

Leggere gli argomenti relativi al concetto nodi del flusso di messaggi e Dominio e programma di analisi MRM.

Il broker fornisce una convalida in base ai dizionari del messaggio per i messaggi predefiniti. La convalida, quindi, si applica solo ai messaggi di cui è stato creato il modello e che sono stati definiti nel dominio MRM.

Il broker non fornisce alcuna convalida per i messaggi a definizione automatica. Non è possibile convalidare i messaggi direttamente rispetto ad una DTD XML o ad uno schema XML. Si dovrebbe invece creare il modello equivalente nel dominio MRM importando la DTD XML o lo Schema XML tramite Message Brokers Toolkit

I flussi di messaggi sono progettati per trasformare e instradare i messaggi che sono conformi a determinate regole. Per impostazione predefinita, il programma di analisi MRM esegue una forma di convalida sul messaggio, ma solo per assicurare l'integrità dell'operazione di analisi. Tuttavia, è possibile convalidare un messaggio più rigorosamente rispetto al modello di messaggio contenuto nel dizionario del messaggio, specificando le opzioni di convalida su certi nodi nel flusso di messaggi.

E' possibile utilizzare le opzioni di convalida per convalidare i seguenti messaggi:

Queste opzioni di convalida possono garantire la validità dei dati che entrano ed escono dal flusso di messaggi. Le opzioni forniscono un certo grado di controllo sulla convalida eseguita per:

E' possibile anche specificare quale azione intraprendere quando la convalida ha esito negativo.

La convalida del messaggio implica la navigazione della struttura ad albero del messaggio e il controllo della sua validità. E' un'estensione della creazione della struttura ad albero quando viene analizzato il messaggio e un'estensione della creazione del flusso di bit quando viene scritto il messaggio di output.

Le opzioni di convalida sono disponibili sui seguenti nodi:

Tipo di nodo Nodi con le opzioni di convalida
Nodo Input MQInput, SCADAInput, HTTPInput, JMSInput, TimeoutNotification
Nodo Output MQOutput, MQReply, SCADAOutput, HTTPReply, JMSOutput
Altri nodi Compute, Mapping, JavaCompute, Validate, ResetContentDescriptor, MQGet, HTTPRequest,

Le opzioni di convalida possono essere specificate anche sull'istruzione ESQL CREATE e sulla funzione ASBITSTREAM.

Per convalidare i messaggi di input ricevuti su un nodo di input, è possibile specificare le proprietà di convalida sul nodo di input. Il messaggio di input viene poi convalidato appena il flusso di bit del messaggio viene analizzato per formare la struttura ad albero del messaggio.

E' possibile utilizzare anche la proprietà Intervallo di analisi del nodo input per controllare se vada effettuata l'analisi e la convalida di tutto il messaggio a questo punto o se i singoli campi nel messaggio vadano analizzati e convalidati solo quando vi si fa riferimento.

Per convalidare i messaggi di output creati da un nodo Compute, un nodo Mapping o un nodo JavaCompute, si possono specificare le proprietà di convalida sul nodo stesso, oppure specificare le proprietà di convalida sul nodo di output che invia il messaggio. La convalida ha luogo quando il nodo di output crea il flusso di bit del messaggio dalla struttura ad albero del messaggio.

In alternativa, è possibile utilizzare il nodo Validate per convalidare la struttura ad albero del messaggio in un punto particolare del flusso di messaggi, oppure utilizzare la funzione ESQL ASBITSTREAM all'interno del nodo Compute, Filter o Database.

Una convalida non completa si verifica per impostazione predefinita se si lasciano le impostazioni di convalida inalterate. A questo livello di impostazione predefinita, si genera un'eccezione se si verifica una delle seguenti situazioni:
  • I dati non corrispondono, quando, ad esempio, il programma di analisi non riesce ad interpretare i dati forniti per il tipo di campo specificato
  • L'ordine degli elementi nel messaggio di output non corrisponde all'ordine nella struttura ad albero logica del messaggio (solo per i modelli a lunghezza fissa CWF e TDS)
Inoltre, il programma di analisi MRM per impostazione predefinita eseguirà un'azione di correzione limitata nelle seguenti circostanze:
  1. I campi estranei sono annullati al momento dell'output per i formati fissi (solo per i modelli a lunghezza fissa CWF e TDS)
  2. Se manca un contenuto obbligatorio, si applicano i valori predefiniti, se disponibili, al momento dell'output per i formati fissi (solo per i modelli a lunghezza fissa CWF e TDS)
  3. Se il tipo di dati di un elemento in una struttura ad albero non corrisponde a quello specificato nel dizionario, il tipo di dati viene convertito al momento dell'output in modo da corrispondere alla definizione di dizionario se possibile, per tutti i formati.

Tuttavia, utilizzando le opzioni di convalida è possibile richiedere una convalida dei messaggi più accurata. Ad esempio, si potrebbe desiderare la convalida di una o più delle seguenti condizioni e la generazione di un'eccezione o la registrazione degli errori:

L'esempio illustra alcune di queste opzioni di convalida.

Quando si utilizzano le opzioni di convalida, è importante conoscere il seguente funzionamento:
  • La proprietà Intervallo di analisi, che controlla se l'analisi 'su richiesta' (chiamata a volte analisi parziale) ha luogo, ha un effetto sul tempo di convalida dei messaggi di input, comprese le intestazioni del messaggio.

    Per ulteriori informazioni sull'Intervallo di analisi, consultare Proprietà della convalida per i messaggi nel dominio MRM.

  • Se una struttura ad albero del messaggio viene trasmessa ad un nodo di output, per impostazione predefinita, il nodo di output eredita le opzioni di convalida in vigore per la struttura ad albero del messaggio. E' possibile sovrascrivere queste opzioni specificando una nuova serie di opzioni di convalida sul nodo di output.
  • Se una struttura ad albero del messaggio viene trasmessa a un nodo Compute, Mapping o JavaCompute, qualsiasi nuova struttura ad albero del messaggio di output creata dal nodo Compute, Mapping o JavaCompute dispone delle opzioni di convalida specificate dal nodo stesso (anche se si copia l'intero messaggio). E' possibile sostituire questo funzionamento e specificare che i messaggi creati dal nodo ereditino le opzioni di convalida dell'albero del messaggio di input.
  • Quando viene scritto il flusso di bit e si applicano le opzioni di convalida, viene convalidato l'intero messaggio. E' possibile che la struttura ad albero del messaggio contenga un tipo non risolto (ad esempio, se un nodo Compute ha copiato un tipo non risolto da un messaggio di input a un messaggio di output senza risolverlo). Se si incontra un tipo di questo genere, si verifica un errore di convalida perché non è possibile convalidare il tipo. Per evitare che questo avvenga, accertarsi che tutti i tipi non risolti vengano risolti prima di essere copiati sui messaggi di output.

Per informazioni su come controllare la convalida utilizzando proprietà diverse, consultare Proprietà della convalida per i messaggi nel dominio MRM.

Concetti correlati
Messaggi predefiniti e a definizione automatica
Panoramica dei flussi di messaggi
Attività correlate
Progettazione di un flusso di messaggi
Creazione di un flusso di messaggi
Definizione del contenuto del flusso di messaggi
Riferimenti correlati
Nodi integrati
Proprietà della convalida per i messaggi nel dominio MRM
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac00400_