Aggregator (esempio di BizTalk Server)
Lo scopo di questo esempio è di creare una funzionalità di aggregazione dei messaggi utilizzando orchestrazioni e pipeline. In particolare, verrà creata un'orchestrazione per eseguire le attività seguenti:
Ricezione di un set di messaggi correlati. I messaggi sono correlati in base alle informazioni sull'URI del partner di destinazione estratte dal contenuto del messaggio.
Aggregazione dei messaggi ricevuti un un singolo batch di interscambio tramite l'esecuzione di una pipeline di trasmissione XML.
Produzione di un messaggio di interscambio XML ogni minuto o non appena il numero di messaggi disponibili è sufficiente per l'aggregazione.
Percorso dell'esempio
<Percorso> di esempi\Pipelines\Aggregator
Nella tabella seguente vengono elencati i file di questo esempio.
File | Descrizione |
---|---|
Aggregator.sln | File di soluzione Visual Studio per l'esempio. |
AggretatorBinding.xml | File di associazione per l'esempio. |
Cleanup.bat | Viene utilizzato per annullare la distribuzione degli assembly e rimuoverli dalla Global Assembly Cache. Consente inoltre di rimuovere porte di trasmissione e ricezione. Consente infine di rimuovere le directory virtuali di Microsoft Internet Information Services (IIS), se necessario. |
Setup.bat | Utilizzato per compilare e inizializzare l'esempio. |
Nella cartella Aggregate: Aggregate.btproj |
Progetto BizTalk per l'orchestrazione di aggregazione. |
Nella cartella Aggregator: Aggregate.odx |
Orchestrazione che raggruppa i messaggi correlati e quindi esegue la pipeline di trasmissione per assemblarli in un singolo interscambio. |
Nella cartella Aggregate: SuspendMessage.odx |
Orchestrazione utilizzata per la sospensione dei messaggi che non possono essere elaborati nell'orchestrazione di aggregazione. |
Nella cartella PipelinesAndSchemas: FFReceivePipeline.btp |
Pipeline di ricezione con il disassembler del file flat. |
Nella cartella PipelinesAndSchemas: Instance1.txt, Instance2.txt, Instance3.txt, Instance4.txt |
Istanze di documento per l'esempio. Instance1.txt e Instance2.txt devono essere aggiunti a un interscambio per il partner http://www.contoso.com di destinazione, mentre Instance3.txt e Instance4.txt devono essere aggiunti a un interscambio per il partner http://www.northwind.com di destinazione . |
Nella cartella PipelinesAndSchemas: Invoice.xsd, InvoiceEnvelope.xsd |
Schema documento e schema della busta per l'interscambio di output. |
Nella cartella PipelinesAndSchemas: PipelinesAndSchemas.btproj |
Progetto BizTalk per gli schemi e le pipeline. |
Nella cartella PipelinesAndSchemas: PropertySchema.xsd |
Schema proprietà per l'esempio. |
Nella cartella PipelinesAndSchemas: XMLAggregatingPipeline.btp |
Pipeline di trasmissione eseguita dall'orchestrazione per assemblare i messaggi raccolti in un interscambio XML. |
Compilazione e inizializzazione dell'esempio
Utilizzare la procedura seguente per compilare e inizializzare l'esempio Aggregator.
Per compilare e inizializzare l'esempio Aggregator
In una finestra di comando passare alla seguente cartella:
<Percorso> di esempi\Pipelines\Aggregator
Eseguire il file Setup.bat. Verranno eseguite le operazioni seguenti:
Crea le cartelle di input (In) e output (Out) dell'esempio nella cartella:
<Percorso> di esempi\Pipelines\Aggregator
Compilazione di progetti di Visual Studio per l'esempio.
Creazione di una nuova applicazione denominata "Aggregator Sample" in cui vengono distribuiti gli assembly di esempio.
Creazione e binding dell'indirizzo di ricezione di BizTalk e delle porte di trasmissione e ricezione.
Integrazione e avvio dell'orchestrazione, abilitazione dell'indirizzo di ricezione e avvio della porta di trasmissione.
Se si sceglie di aprire e compilare i progetti dell'esempio senza eseguire il file Setup.bat, è necessario creare prima una coppia di chiavi con nome sicuro utilizzando l'utilità Nome sicuro di .NET Framework (sn.exe). Utilizzare questa coppia di chiavi per firmare gli assembly risultanti.
Prima di tentare di eseguire l'esempio, verificare che in BizTalk Server non siano stati segnalati errori durante il processo di compilazione e inizializzazione.
Per annullare le modifiche apportate da Setup.bat, eseguire Cleanup.bat. È necessario eseguire Cleanup.bat prima di eseguire Setup.bat una seconda volta.
Esecuzione dell'esempio
Utilizzare la procedura seguente per eseguire l'esempio Aggregator.
Per eseguire l'esempio Aggregator
Aprire i file Instance1.txt e Instance2.txt nella cartella PipelinesAndSchemas per esaminarne il contenuto.
Si noti che in entrambi i file l'elemento DestinationPartnerURI contiene il valore
http://www.contoso.com
. Questo valore verrà usato per correlare questi due messaggi insieme in modo che possano essere aggiunti a un interscambio.Analogamente, Instance3.txt e Instance4.txt file hanno l'elemento DestinationPatnerURI impostato su
http://www.northwind.com
.Questi due messaggi verranno aggiunti insieme a un interscambio diverso.
Incollare le copie dei file di testo Instance1.txt, Instance2.txt, Instance3.txt e Instance4.txt nella cartella In.
Le orchestrazioni di aggregazione producono interscambi di output non appena vengono raccolti 10 messaggi o dopo un timeout di 1 minuto. Per questo motivo, è possibile che i file vengano visualizzati con ritardo nella cartella Out.
Per evitare il timeout, è possibile incollare i quattro file di input altre quattro volte, in modo da attivare la produzione degli interscambi da parte delle orchestrazioni di aggregazione.
Osservare i file XML creati nella cartella Out. Devono essere presenti due file, uno per ogni URI partner di destinazione.
Aprire uno dei file per esaminarne il contenuto. Il file dovrebbe contenere un interscambio XML costituito da una busta e da due documenti XML.
Nota
In uno scenario con una serie di istruzioni in condizioni di carico elevato è possibile che l'implementazione di esempio generi un errore di tipo "Consegnato, non utilizzato" o "Completato con messaggi ignorati". Questi errori si verificano ogni volta che un messaggio viene instradato in un processo di business che sta per terminare oppure ogni volta che in un processo di business arrivano messaggi imprevisti.