BAM End-to-End (esempio di BizTalk Server)
Nell'esempio End-to-End viene illustrato come correlare eventi da più componenti, in questo caso tre orchestrazioni e una pipeline, tramite BAM.
BAM ricostruisce l'attività di business che comprende il componente della pipeline e le orchestrazioni. Al livello più basso, questo funziona tramite chiamate a EventStream.EnableContinuation da ogni componente di implementazione che prevede più eventi per l'attività. La chiamata a EnableContinuation è esplicita, mentre le chiamate in Orchestration1 e Orchestration2 vengono effettuate aggiungendo una cartella Di continuazione al profilo di rilevamento in una pianificazione e una cartella ContinuationID alla pianificazione che la segue.
Nella figura seguente viene illustrato il flusso di lavoro utilizzato nell'esempio.
Scopo dell'esempio
L'esempio end-to-end BAM illustra come utilizzare BAM per raccogliere informazioni da una pipeline e da più orchestrazioni e aggiornare una singola attività.
Progettazione e finalità dell'esempio
L'esempio end-to-end BAM è stato progettato per illustrare le attività seguenti:
Utilizzo di BAM all'interno di una pipeline.
Utilizzo dell'Editor profili di rilevamento per mappare elementi di attività a forme in un'orchestrazione e negli elementi di un messaggio.
Utilizzo delle Continuation per mantenere attiva un'attività a cui prendono parte più componenti di una soluzione.
Il funzionamento dell'esempio è il seguente:
Viene recuperato un messaggio di input dalla <cartella Samples Path>\BamEndToEnd\Input.
Il componente della pipeline assegna un DocumentID univoco al messaggio e utilizza l'API BAM per iniziare una nuova attività BAM. Il DocumentID viene allegato come componente separato del messaggio di input in modo da renderlo disponibile alle orchestrazioni.
Il servizio Orchestration1 viene attivato alla ricezione del messaggio di input.
Orchestration1 modifica il messaggio di input e lo passa come parametro a Orchestration2.
Orchestration2 modifica il messaggio di input e lo invia al database MessageBox, che attiva Orchestration3.
Orchestration3 modifica il messaggio e lo scrive nella cartella <Samples Path>\BamEndToEnd\Output.
Ogni orchestrazione aggiorna gli elementi di attività nell'attività BAM.
Percorso dell'esempio
Questo esempio è disponibile in <Samples Path>\BAM\BamEndToEnd.
Nella seguente tabella sono riportati i file inclusi nell'esempio e ne viene descritto lo scopo.
File | Descrizione |
---|---|
BamEndToEnd.sln | Soluzione di esempio end-to-end BAM. |
BamEndToEnd.xls | Foglio di stile di definizione BAM. |
BamEndToEnd.xml | XML di definizione BAM. |
BAMEndToEndBinding.xml | Binding BAM. |
Cleanup.bat | File batch per annullare la distribuzione dell'esempio. |
InputMessage.xml | Messaggio di input. |
Setup.bat | File batch per compilare e distribuire l'esempio. |
\Components\AssemblyInfo.cs | Codice del componente della pipeline. |
\Components\BAMMessagePartPLComponent.cs | Codice del componente della pipeline. |
\Components\Components.csproj | Progetto del componente della pipeline. |
\Messages\InputMessage01.xml ... \Messages\InputMessage10.xml |
Messaggi di input di esempio. |
\Services\BAMInbound.btp | File di pipeline in ingresso. |
\Services\BAMPartSchema.xsd | Schema messaggi della parte BAM. |
\Services\Orchestration1.odx | Orchestrazione. |
\Services\Orchestration2.odx | Orchestrazione. |
\Services\Orchestration3.odx | Orchestrazione. |
\Services\PropertySchema.xsd | Schema proprietà. |
\Services\Schema1.xsd | Schema messaggi. |
\Services\Schema2.xsd | Schema messaggi. |
Services\Schema3.xsd | Schema messaggi. |
\Services\Services.btproj | Progetto file BizTalk di Visual Studio. |
\Services\Transform_1.btm | File di mappa. |
\Services\Transform_2.btm | File di mappa. |
\Services\Transform_3.btm | File di mappa. |
Modalità di utilizzo dell'esempio
Utilizzare le procedure riportate di seguito per compilare ed eseguire l'esempio end-to-end BAM:
Compilare e inizializzare questo esempio
Aprire un prompt dei comandi come amministratore ed eseguire <il percorso> esempi\BAM\BAMEndToEnd\Setup.bat. Setup.bat consente di compilare e inizializzare l'infrastruttura BAM per l'esempio. Lasciare aperta la finestra del prompt dei comandi.
Creare un profilo di rilevamento per eseguire il mapping di Orchestration1, Orchestration2 e Orchestration3 all'attività BAM. Poiché la creazione del profilo di rilevamento è un processo complesso, le istruzioni dettagliate si trovano in una procedura separata denominata Per creare un profilo di rilevamento. Questa procedura viene visualizzata più avanti in questo documento.
Distribuire il profilo di rilevamento BamEndToEnd.btt creato nel passaggio precedente. Nel prompt dei comandi passare alla <directory Samples Path>\BAM\BamEndToEnd. Per distribuire il profilo di rilevamento, digitare la riga seguente e quindi premere INVIO:
“<BizTalkInstallationPath>\Tracking\bttdeploy” BamEndToEnd.btt
Come distribuire profili di rilevamento con l'utilità di gestione profili di rilevamento fornisce altre informazioni.
Importante
È possibile ignorare il messaggio che indica che a ContinuationID Orch1_ non corrisponde alcuna Continuation. Questo messaggio viene visualizzato perché la Continuation denominata Orch1_ è definita nel componente della pipeline ma non nel profilo di rilevamento.
Esegui questo esempio
Copiare il percorso> esempi di file<\BamEndToEnd\InputMessage.xml nella cartella <Percorso esempi>\BamEndToEnd\Input. Dopo alcuni secondi, il messaggio scompare dalla cartella Input e viene visualizzato un messaggio di output nella <cartella Samples Path>\BamEndToEnd\Output.
Visualizzare i dati BAM
Aprire SQL Server Management Studio.
In SQL Server Management Studio espandere il server, espandere Database, espandere BAMPrimaryImport e quindi espandere Tabelle.
Fare clic con il pulsante destro del mouse su dbo.bam_EndToEndActivity_Completed, quindi scegliere Apri tabella. Se si usa SQL Server, fare clic su Seleziona le prime 1000 righe.
Il contenuto della tabella bam_EndToEndActivity_Completed verrà visualizzato nel riquadro destro. Ogni riga della tabella rappresenta un'attività EndToEndActivity completata.
Eseguire nuovamente questo esempio
Aprire un prompt dei comandi come amministratore e passare alla <directory Samples Path>\BAM\BamEndToEnd. Digitare la riga seguente:
“C:\Program Files\Microsoft BizTalk Server <version>\Tracking\bttdeploy” BamEndToEnd.btt /remove
Nota
Se non è stato installato BizTalk Server nell'unità C, sostituire "C" con la lettera di unità in cui è stata installata BizTalk Server.
Eseguire <il percorso> esempi\BAM\BAMEndToEnd\Cleanup.bat. Cleanup.bat consente di rimuovere l'infrastruttura BAM per l'esempio.
Eseguire i passaggi in Per compilare e inizializzare questa sezione di esempio in questo argomento.
Creare un profilo di rilevamento
Fare clic su Start, scegliere Tutti i programmi, scegliere Microsoft BizTalk Server 20xx. Fare clic con il pulsante destro del mouse su Editor profilo di rilevamento e eseguire come amministratore.
Nel riquadro sinistro della finestra Editor profilo di rilevamento fare clic su Fare clic qui per importare una definizione di attività BAM.
Nella sezione Nome definizione attività BAM della finestra di dialogo Importa definizione attività BAM selezionare EndToEndActivity e quindi fare clic su OK.
Nel riquadro destro della finestra Editor profilo di rilevamento fare clic su Fare clic qui per selezionare un'origine evento.
Nella sezione Nome assembly della finestra di dialogo Seleziona assembly padre origine evento selezionare Microsoft.Samples.BizTalk.BamEndToEnd.Services e quindi fare clic su Avanti.
Nella sezione Nome orchestrazione della finestra di dialogo Seleziona orchestrazione selezionare BamEndToEnd.Services.Orchestration1 e quindi fare clic su OK.
Nel riquadro sinistro della finestra Editor profilo di rilevamento fare clic con il pulsante destro del mouse su EndToEndActivity e quindi scegliere Nuovo ID continuazione. Assegnare un nome al nuovo ID di continuazione Orch1_. Ripetere questo passaggio per creare due ID di continuazione denominati Orch2_ e Orch3_.
Fare clic con il pulsante destro del mouse su EndToEndActivity e quindi scegliere Nuova continuazione. Assegnare un nome al nuovo Orch2_ di continuazione. Ripetere questo passaggio per creare un'altra continuazione denominata Orch3_.
Fare clic con il pulsante destro del mouse sulla forma Receive1 e quindi scegliere Schemi proprietà contesto.
Scorrere fino alla fine dell'elenco Nome proprietà contesto e quindi fare doppio clic su BAMEndToEnd.Services.PropertySchema.DocumentID.
Espandere <Schema> e quindi trascinare DocumentID nel riquadro destro per Orch1_ nel riquadro sinistro.
Fare clic sull'icona della cartella con la freccia ( su ) due volte per visualizzare l'orchestrazione.
Trascinare la forma Receive1 nel riquadro destro in SBegin1 nel riquadro sinistro.
Trascinare la forma StartOrchestration_1 nel riquadro destro in SEnd1 nel riquadro sinistro.
Fare clic con il pulsante destro del mouse sulla forma StartOrchestration_1 e quindi scegliere Schemi payload messaggio.
Fare doppio clic sulla riga contenente il valore "Message_2" nella colonna Message e il valore "MessageBody" nella colonna Part .
Espandere Schema2 e quindi trascinare Data2 nel riquadro destro in Data1 nel riquadro sinistro.
Fare clic su Seleziona origine evento e quindi su Seleziona proprietà contesto.
Scorrere fino alla fine dell'elenco Nome proprietà contesto e quindi fare doppio clic su BAMEndToEnd.Services.PropertySchema.DocumentID.
Espandere <Schema> e quindi trascinare DocumentID nella continuazione Orch2_ nel riquadro sinistro.
Nota
Non confondere la Continuation Orch2_ con il ContinuationID Orch2_. L'icona che rappresenta un ID di continuazione contiene una chiave (), mentre l'icona che rappresenta una continuazione non contiene una chiave ().
Fare clic su Seleziona origine evento e quindi su Seleziona pianificazione orchestrazione.
Nella sezione Nome assembly della finestra di dialogo Seleziona assembly padre origine evento selezionare Microsoft.Samples.BizTalk.BamEndToEnd.Services e quindi fare clic su Avanti.
Nella sezione Nome orchestrazione della finestra di dialogo Seleziona orchestrazione selezionare BamEndToEnd.Services.Orchestration2 e quindi fare clic su OK.
Fare clic con il pulsante destro del mouse sulla forma ConstructMessage_1 e quindi scegliere Schemi payload messaggio.
Fare doppio clic sulla riga contenente il valore "Message_3" nella colonna Message e il valore "BAMPart" nella colonna Part .
Espandere BAMPart e quindi trascinare DocumentID nel riquadro destro nell'ID di continuazione Orch2_ nel riquadro sinistro.
Nota
Non confondere la Continuation Orch2_ con il ContinuationID Orch2_. L'icona che rappresenta un ID di continuazione contiene una chiave (), mentre l'icona che rappresenta una continuazione non contiene una chiave ().
Fare clic sull'icona della cartella con la freccia () due volte per visualizzare l'orchestrazione.
Trascinare la forma ConstructMessage_1 nel riquadro destro in SBegin2 nel riquadro sinistro.
Trascinare la forma Send_1 nel riquadro destro in SEnd2 nel riquadro sinistro.
Fare clic con il pulsante destro del mouse sulla forma Send_1 e quindi scegliere Schemi payload messaggio.
Fare doppio clic sulla riga contenente il valore "Message_3" nella colonna Message e il valore "MessageBody" nella colonna Part .
Espandere Schema3 e quindi trascinare Data3 nel riquadro destro in Data2 nel riquadro sinistro.
Nell'elenco a discesa sopra il riquadro destro selezionare Schemi payload messaggio.
Fare doppio clic sulla riga contenente il valore "Message_3" nella colonna Message e il valore "BAMPart" nella colonna Part .
Espandere BAMPart e quindi trascinare DocumentID nel riquadro destro nella continuazione Orch3_ nel riquadro sinistro.
Nota
Non confondere la Continuation Orch3_ con il ContinuationID Orch3_. L'icona che rappresenta un ID di continuazione contiene una chiave (), mentre l'icona che rappresenta una continuazione non contiene una chiave ().
Fare clic su Seleziona origine evento e quindi su Seleziona pianificazione orchestrazione.
Nella sezione Nome assembly della finestra di dialogo Seleziona assembly padre origine evento selezionare Microsoft.Samples.BizTalk.BamEndToEnd.Services e quindi fare clic su Avanti.
Nella sezione Nome orchestrazione della finestra di dialogo Seleziona orchestrazione selezionare BamEndToEndToEnd.Services.Orchestration3 e quindi fare clic su OK.
Fare clic con il pulsante destro del mouse sulla forma Receive1 e quindi scegliere Schemi payload messaggio.
Fare doppio clic sulla riga contenente il valore "Message_3" nella colonna Message e il valore "BAMPart" nella colonna Part .
Espandere BAMPart e quindi trascinare DocumentID nel riquadro destro nell'ID di continuazione Orch3_ nel riquadro sinistro.
Nota
Non confondere la Continuation Orch3_ con il ContinuationID Orch3_. L'icona che rappresenta un ID di continuazione contiene una chiave (), mentre l'icona che rappresenta una continuazione non contiene una chiave ().
Fare clic sull'icona della cartella con la freccia ( su ) due volte per visualizzare l'orchestrazione.
Trascinare la forma Receive1 nel riquadro destro in SBegin3 nel riquadro sinistro.
Trascinare la forma Send_1 nel riquadro destro in SEnd3 nel riquadro sinistro.
Fare clic con il pulsante destro del mouse sulla forma Send_1 e quindi scegliere Schema payload messaggio.
Espandere Schema3 e quindi trascinare Data3 nel riquadro destro in Data3 nel riquadro sinistro.
Fare clic con il pulsante destro del mouse su DocumentID sotto la continuazione Orch2_ e quindi scegliere Imposta mapping porte.
Nota
Non confondere la Continuation Orch2_ con il ContinuationID Orch2_. L'icona che rappresenta un ID di continuazione contiene una chiave (), mentre l'icona che rappresenta una continuazione non contiene una chiave ().
Nella sezione Seleziona porte della finestra di dialogo Seleziona porte fare clic su BamEndToEnd_ReceivePort, fare clic sul segno maggiore di (>) e quindi su OK.
Salvare il profilo di rilevamento in <Percorso> esempi\BAM\BamEndToEnd\BamEndToEnd.btt.
Dettagli importanti
I profili di rilevamento non sono supportati per le pipeline. Tuttavia, la chiamata a BeginActivity nel componente della pipeline è uguale all'uso di ActivityID in un'orchestrazione. La chiamata a EnableContinuation corrisponde all'uso di una continuazione in un'orchestrazione.
Vedere anche
Business Activity Monitoring (cartella di esempi di BizTalk Server)