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.
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.
Per ulteriori informazioni sull'Intervallo di analisi, consultare Proprietà della convalida per i messaggi nel dominio MRM.
Per informazioni su come controllare la convalida utilizzando proprietà diverse, consultare Proprietà della convalida per i messaggi nel dominio MRM.