Gestione delle eccezioni nei flussi di aggregazione

Quando si utilizzano i flussi di aggregazione, si potrebbero verificare delle eccezioni. Questo argomento spiega come gestirle.

Prima di iniziare:

Per completare questa attività, è necessario completare prima quelle che seguono:

Gestione delle eccezioni

Se viene rilevato un errore nel corso dell'elaborazione di un nodo AggregateReply, il broker genera un'eccezione. Anche un altro nodo nel flusso di messaggi potrebbe generare un'eccezione utilizzando l'istruzione ESQL THROW. In entrambi i casi, quando viene generata un'eccezione, questa viene rilevata in due ubicazioni:

  • Il nodo di input su cui arrivano le repliche
  • Il nodo AggregateReply

La seguente tabella elenca gli eventi e spiega cosa accade ad un'eccezione generata nel corso dell'elaborazione del nodo AggregateReply.

Evento Messaggio trasmesso Terminale di Output Eccezione rilevata nel
Al nodo di input arriva una replica prevista e viene trasmessa al terminale In del nodo AggregateReply. Si tratta dell'ultima replica necessaria affinché un'aggregazione sia completa. Il messaggio di replica aggregato che contiene tutte le repliche Out Nodo di input
Al nodo di input arriva una replica non prevista e viene trasmessa al nodo AggregateReply. Essa non viene riconosciuta come replica valida e la proprietà Timeout messaggio sconosciuto è impostata su 0. Messaggio ricevuto Unknown Nodo di input
Si verifica un timeout poiché tutte le repliche per un'aggregazione non sono ancora arrivate. Il messaggio di replica aggregato che contiene tutte le repliche che sono state ricevute Timeout Nodo AggregateReply
Si verifica un timeout sconosciuto poiché un messaggio conservato non è stato identificato come replica valida. Messaggio conservato Unknown Nodo AggregateReply
Si stabilisce che un'aggregazione è completa in un tempo diverso da quello in cui è arrivata l'ultima replica. Il messaggio di replica aggregato che contiene tutte le repliche Out Nodo AggregateReply

Se si desidera gestire gli errori che si verificano nei flussi di aggregazione, è necessario rilevare tali eccezioni in tutte le istanze di ciascuno di questi nodi nel flusso di messaggi. Procedere nel modo seguente:

  1. Passare alla Prospettiva Sviluppo dell'applicazione broker.
  2. Aprire il flusso di messaggi che si desidera gestire.
  3. Se si desidera gestire queste eccezioni autonomamente, connettere il terminale catch di ogni nodo input e AggregateReply ad una sequenza di nodi che gestisce l'errore che si è verificato.

    Se si desidera avere un approccio unificato alla gestione degli errori, collegare i terminali catch di tutti questi nodi ad una singola sequenza di nodi o creare un flusso secondario che gestisce gli errori in un unico modo coerente e collegare il flusso secondario ad ogni terminale catch.

  4. Se si desidera che il broker gestisca queste eccezioni utilizzando la gestione degli errori predefinita, non connettere i terminali catch di questi nodi.
Se si connette il terminale catch del nodo AggregateReply e si desidera emettere il messaggio trasmesso tramite questo terminale ad una destinazione da cui possa essere richiamato per un'elaborazione successiva, è necessario includere un nodo Compute nel flusso catch per fornire qualsiasi tipo di elaborazione specifica per il trasporto. Ad esempio, è necessario aggiungere un'intestazione MQMD se si desidera inserire il messaggio in una coda WebSphere MQ da un nodo MQOutput.

L'esempio seguente di ESQL mostra come aggiungere un'intestazione MQMD e trasmettere le repliche ricevute dal nodo AggregateReply:

-- Aggiungere MQMD
SET OutputRoot.MQMD.Version = 2;
.
-- Includere le repliche consolidate nel messaggio di output
SET OutputRoot.XML.Data.Parsed = InputRoot.ComIbmAggregateReplyBody;
.

Se si desidera trasmettere le informazioni sull'eccezione nel messaggio di output, è necessario anche impostare la proprietà Modalità di calcolo del nodo Compute su un valore che include Eccezione.

Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ac12340_