Condividi tramite


Esecuzione del campione di elaborazione ESB per il routing del messaggio non riuscito in BizTalk

L'esempio microsoft BizTalk Failed Message Routing ESB Processing illustra come usare Microsoft BizTalk ESB Toolkit Exception Management Framework come meccanismo universale per gestire, serializzare ed eseguire il rendering delle eccezioni in tutte le condizioni in BizTalk Server. Sono incluse le eccezioni generate dal meccanismo di routing dei messaggi non riusciti bizTalk e dai messaggi di errore generati da Exception Management Framework dall'interno di un'orchestrazione.

Il meccanismo di routing dei messaggi non riusciti di BizTalk è la funzionalità di gestione degli errori di BizTalk Server; usandola, la finestra di progettazione può designare la gestione automatizzata degli errori di messaggistica come alternativa al comportamento tradizionale (ora predefinito) di inserimento dei messaggi non riusciti nella coda "Sospesa". Questa gestione automatizzata indirizza un messaggio di errore a qualsiasi destinazione di routing di sottoscrizione, ad esempio una porta di trasmissione o un'orchestrazione. Il messaggio di errore è un clone del messaggio originale con tutte le proprietà alzate di livello precedentemente abbassate di livello e con le proprietà selezionate correlate all'errore di messaggistica specifico alzato di livello nel contesto del messaggio.

Per abilitare il meccanismo bizTalk Failed Message Routing su una porta di ricezione o una porta di trasmissione, selezionare la casella di controllo Abilita routing per i messaggi non riusciti , come illustrato nella figura 1.

Routing abilitato

Figura 1

Abilitazione del meccanismo di routing dei messaggi non riusciti di BizTalk

Tuttavia, non esiste un meccanismo simile per errori o errori che si verificano in un'orchestrazione. Al contrario, il codice all'interno del gestore eccezioni di un'orchestrazione può sfruttare l'API di Gestione eccezioni per emulare la funzionalità del meccanismo di routing dei messaggi non riusciti bizTalk.

In questo esempio, il percorso di ricezione denominato EAIProcess.RequestPort_FILE raccoglie i file copiati nel percorso \Source\Samples\Exception Handling\Test\Filedrop\EAIProcess.RequestPort.

È inoltre disponibile una porta di trasmissione generica denominata ALL. Exceptions_FILE configurata per l'uso della pipeline GlobalFaultProcessor installata come parte di Exception Management Framework. Questa porta sottoscrive tutte le eccezioni che si verificano nel sistema, sia i messaggi di routing dei messaggi non riusciti di BizTalk che i messaggi di errore ESB, come illustrato nella figura 2.

Porta di

Figura 2

The ALL. Eccezioni inviano la sottoscrizione della porta per tutti i tipi di errore o eccezione

Exception Management Framework normalizza tutte le eccezioni in un singolo formato e le serializza usando un'istruzione di elaborazione di Microsoft InfoPath nel percorso \Source\Samples\Exception Handling\Test\Filedrop\All_Exceptions.

Installazione

Tutti gli esempi di gestione delle eccezioni usano lo stesso set di servizi di base e gli artefatti dell'applicazione BizTalk. Pertanto, è necessario installare gli artefatti di esempio di gestione delle eccezioni solo una volta per poter eseguire tutti gli esempi di gestione delle eccezioni. Per informazioni su come installare gli esempi di gestione delle eccezioni, vedere Installazione degli esempi di gestione delle eccezioni.

Esecuzione dell'applicazione di esempio

Per eseguire l'esempio di elaborazione ESB del routing dei messaggi bizTalk non riuscito

  1. Prima di eseguire questo esempio per la prima volta, assicurarsi che il percorso di ricezione e l'URL della porta di trasmissione puntino alle directory appropriate nella cartella \Source\Samples\Exception Handling\Test\Filedrop. Il percorso di ricezione deve specificare la cartella EAIProcess.RequestPort e l'URL della porta di trasmissione deve specificare la cartella All_Exceptions.

  2. Se l'applicazione GlobalBank.ESB non è già in esecuzione, usare la Console di amministrazione BizTalk per avviarla.

  3. Copiare il file denominato FlatFileReceive_in.txt dalla cartella \Source\Samples\Exception Handling\Test\Data nella cartella del percorso di ricezione denominata EAIProcess.RequestPort (nella cartella \Source\Samples\Exception Handling\Test\Filedrop).

  4. Questo messaggio è un file di testo e genererà un'eccezione. Aprire la cartella denominata All_Exceptions (nella cartella \Source\Samples\Exception Handling\Test\Filedrop) e quindi fare doppio clic sul messaggio di errore per aprirlo in InfoPath usando il modello appropriato. Si noterà che il meccanismo di gestione delle eccezioni ESB serializza il contenuto in modo appropriato per consentire a InfoPath di eseguirne il rendering.

  5. Copiare quindi il file denominato soapmessage[1].xml dalla cartella \Source\Samples\Exception Handling\Test\Data nella cartella di ricezione EAIProcess.RequestPort.

  6. Questo messaggio è un documento XML contenente una sezione CDATA e genererà un'eccezione. Aprire la cartella di output All_Exceptions e fare doppio clic sul messaggio di errore per aprirlo in InfoPath. Si noterà che il meccanismo di gestione delle eccezioni ESB serializza questo contenuto in modo appropriato per consentire a InfoPath di eseguirne il rendering.

  7. Copiare infine il file denominato Csqzav01.pdf dalla cartella \Source\Samples\Exception Handling\Test\Data nel percorso di ricezione EAIProcess.RequestPort.

  8. Questo messaggio è un file PDF e causerà un'eccezione. Aprire la cartella di output All_Exceptions e fare doppio clic sul messaggio di errore per aprirlo in InfoPath. Si noterà che il meccanismo di gestione delle eccezioni ESB serializza e Base 64 codifica il contenuto per consentire a InfoPath di eseguirne il rendering.