Raccolte di messaggi
Una raccolta messaggi è un singolo messaggio contenente più messaggi derivati da una o più origini.
È possibile utilizzare un nodo Collector per raggruppare i messaggi provenienti da una o più origini in una raccolta di messaggi, in modo che possano essere elaborati insieme dai nodi downstream. È anche possibile creare manualmente una raccolta di messaggi utilizzando un nodo Compute .
Struttura di una raccolta di messaggi
- Messaggio (incluse intestazioni di trasporto)
- Ambiente locale
- Ambiente globale
- Elenco di eccezioni

Una raccolta di messaggi ha un'intestazione Proprietà ed un elemento singolo di cartella denominato Raccolta. Una raccolta di messaggi può anche avere zero o più attributi aventi coppie nome-valore; il nome
di un attributo deve essere univoco all'interno di una raccolta di messaggi. Questi sono visualizzati come <name> / <value> nella figura. Un attributo standard per una raccolta di messaggi è un attributi denominato
CollectionName. Se si utilizza un nodo Collector per generare una raccolta di messaggi, il valore per il nome della raccolta viene generato in base ai valori configurati nel nodo. L'attributo del nome della raccolta non è obbligatorio.
Nella cartella Raccolta della struttura ad albero della raccolta di messaggi sono presenti cartelle, mostrate come <folder
name> nel diagramma. Queste cartelle contengono la struttura ad
albero del messaggio per ciascun messaggio aggiunto alla raccolta. Ciascuna di queste cartelle ha un nome, ma questo nome non deve necessariamente essere univoco nella
raccolta di messaggi. Il valore per <folder name> deriva dall'origine del messaggio di input.
Le raccolte nidificare di messaggi non sono consentite. Non è quindi possibile utilizzare una raccolta di messaggi come messaggio di origine per un'altra raccolta di messaggi. Ad esempio, se si tenta di passare una raccolta di messaggi ad un terminale di input su un nodo Collector , viene generato un errore.
Le strutture ad albero LocalEnvironment, Environment ed ExceptionList non sono incluse nella struttura ma vengono invece portate separatamente come parte dell'assemblaggio del messaggio. Non esiste un concetto di LocalEnvironment associato ad ogni messaggio all'interno di una raccolta.
Creazione di una raccolta di messaggi utilizzando un nodo Collector
È possibile utilizzare il nodo Collector per creare più richieste sincrone o asincrone in parallelo. I risultati di queste richieste possono essere unificate nel proseguimento dell'elaborazione, se richiesto. Questo comportamento è diverso da quello dei nodi di aggregazione in cui esiste un modello fisso di richiesta/risposta e dove i messaggi di risposta vengono raggruppati da un id richiesta. Al contrario, per il nodo collector non è necessaria una fase iniziale di fan-out ed è in grado di raggruppare messaggi di input non correlati, mettendo in relazione i relativi contenuti. È possibile configurare terminali di input dinamici su un nodo Collector per ricevere messaggi da origini differenti. È inoltre possibile configurare le proprietà sul nodo Collector , noto come gestori eventi, per determinare il modo in cui i messaggi vengono aggiunti a una raccolta di messaggi e quando una raccolta di messaggi è completa.
Elaborazione di una raccolta di messaggi
- Calcolo
- JavaCompute
- CICSRequest
InputRoot.Collection. Per accedere al contenuto di un messaggio in una raccolta di messaggi utilizzando ESQL è possibile utilizzare un codice simile all'ESQL seguente:InputRoot.Collection.folder1.XMLNSCIn
XPath, l'elemento root è il corpo del messaggio. L'elemento root per una raccolta di messaggi è l'elemento
Collection. Quindi, per accedere al contenuto di un messaggio in una raccolta di messaggi utilizzando XPath,
è necessario utilizzare un'espressione simile al seguente XPath:/folder1/XMLNSC/*: restituisce un elenco di tutti i messaggi contenuti nella raccolta di messaggi./@*: restituisce un elenco di tutti gli attributi della raccolta di messaggi./@Name: restituisce il valore dell'attributoName.
Potrebbe non essere possibile determinare l'ordine dei messaggi all'interno di una raccolta. Se si genera una raccolta di messaggi utilizzando il nodo Collector , i messaggi vengono disposti nello stesso ordine in cui sono arrivati al nodo.