Utilizzo di più continuazioni
L'utilizzo dell'Editor profili di rilevamento (TPE, Tracking Profile Editor) in ambienti in cui vi sono più attività richiede la comprensione dello scenario in cui si è tenuto traccia delle attività al fine di eseguire il mapping delle porte di ricezione, orchestrazioni e porte di trasmissione nella sequenza corretta.
In un profilo di rilevamento, l'Editor profili di rilevamento valuta automaticamente l'inizio e la fine dell'attività. L'attività inizia quando viene raccolto il primo blocco di dati e termina quando viene raccolto l'ultimo blocco di dati.
Nella maggior parte dei dati la creazione di un'unica continuazione, ad esempio una continuazione tra due orchestrazioni, rappresenta un processo semplice per gli sviluppatori. L'Editor profili di rilevamento presenta delle complessità nel caso di più continuazioni. Uno scenario di continuazione multipla è il caso in cui un'attività BAM (Business Activity Monitoring) si estende su più porte di ricezione, orchestrazioni e porte di trasmissione. Al fine di raccogliere i dati BAM in un record, è necessario creare continuazioni tra tutte le pianificazioni BizTalk Server. Questo processo può essere complesso quando completato mediante l'interfaccia utente TPE.
In questo argomento viene illustrato come creare continuazioni singole e multiple in scenari differenti.
Descrizione dello scenario di base – Porte di ricezione, orchestrazioni e porte di trasmissione multiple
Lo scenario consiste in un server BizTalk che ha un numero di porte di ricezione (R), orchestrazioni (O) e porte di trasmissione (S). Vi è una proprietà di contesto interchangeID utilizzata per collegare le continuazioni. È possibile utilizzare qualsiasi proprietà di contesto, ad esempio activityID o un altro identificatore univoco. La scelta del contenuto specifico non è rilevante ai fini della discussione dello scenario.
Per gli scopi dello scenario, le discussioni di elementi dati/attività cardine/valore della proprietà di contesto di cui si è tenuto traccia da queste porte e orchestrazioni non sono specifici. Tale parte del mapping è specifica della regola business. Lo scopo è quello di acquisire tutti i dati BAM da tutte le porte e orchestrazioni in un'unica riga nella tabella attività completata. I differenti modi in cui un messaggio può essere ricevuto ed elaborato dalle orchestrazioni presenta alcune sfide e soluzioni interessanti.
Nota
Lo scenario di una porta o di una orchestrazione può essere considerato un caso speciale dello scenario a molte porte e molte orchestrazioni.
Soluzione scenario 1 – Una porta di ricezione e una orchestrazione
In questo scenario, un messaggio arriva esattamente a una delle porte di ricezione (R1) e viene elaborato esattamente da una delle orchestrazioni (O1).
Il processo per la creazione della continuazione è il seguente:
Creare una continuazione nella visualizzazione ad albero attività cartella del profilo di rilevamento.
Scegliere lo schema della proprietà di contesto facendo clic sul pulsante Seleziona origine evento e quindi facendo clic sulla voce di menu Seleziona proprietà di scelta rapida .
Individuare la proprietà interchangeId nell'elenco Nome proprietà contesto e quindi selezionarla.
Dallo schema proprietà, eseguire il mapping del nodo interchangeID alla cartella di continuazione appena creata.
Fare clic con il pulsante destro del mouse sul nodo interchangeID appena creato nella struttura attività, quindi selezionare le porte da cui si desidera eseguire il mapping.
Nella finestra di dialogo Seleziona porte visualizzata selezionare tutte le porte di ricezione N .
Creare una cartella di continuationID nell'albero attività cartella.
Aprire ogni orchestrazione facendo clic sul pulsante Seleziona origine evento e quindi facendo clic sulla voce di menu Seleziona pianificazione orchestrazione . Da ciascuna orchestrazione, fare clic con il pulsante destro del mouse su una forma dell'orchestrazione, quindi eseguire il mapping della proprietà di contesto interchangeID alla cartella di continuationID appena creata.
In una distribuzione con tre orchestrazioni, il profilo di rilevamento sarà simile al seguente:
Soluzione scenario 2 – Una porta di ricezione e più orchestrazioni
In questo scenario, un messaggio arriva esattamente a una delle porte di ricezione e viene elaborato da ciascuna delle orchestrazioni. Ciò avviene dal momento che il messaggio viene inviato simultaneamente a ogni orchestrazione.
In questo caso, sarà necessaria una continuazione e un continuationID per ogni orchestrazione. Il processo di creazione delle continuazioni sarà simile ai passaggi descritti nella soluzione scenario 1. Per una distribuzione a tre orchestrazioni, il profilo di rilevamento risultante ha un aspetto simile al seguente:
Soluzione scenario 3 - Routing basato sul contenuto
Questo scenario definisce una soluzione di routing basato sul contenuto. Un messaggio arriva esattamente a una delle porte di ricezione e viene inviato esattamente a una delle porte di trasmissione. Tale routing avviene in base al valore della proprietà di contesto del messaggio. In questo caso, sarà necessaria una continuazione. Il mapping sarà simile al seguente:
Nota
Il mapping sopra riportato è anche valido per un messaggio che arriva esattamente a una delle porte di ricezione e che viene inviato a tutte le porte di trasmissione.
Soluzione scenario 4 – Un'orchestrazione, più porte di trasmissione
In questo scenario sono presenti più invii. . Un messaggio viene elaborato esattamente da una delle orchestrazioni, determinate dalle regole di elaborazione e inviate a tutte le porte di trasmissione. In questo caso, sarà necessaria una continuazione. Il mapping sarà simile al seguente:
Soluzione scenario 5 – Orchestrazioni sequenziali
In questo scenario, un messaggio viene elaborato da ogni orchestrazione in sequenza, una ad una, e viene passato all'orchestrazione successiva mediante la continuazione. Il mapping sarà simile al seguente:
Raccolta di dati in un ambiente asincrono
Quando si configurano le continuazioni, BAM si aspetta l'arrivo dei dati. In un ambiente asincrono potrebbe non essere possibile ricevere una risposta da un processo back-end.
Se i dati di risposta non sono necessari, l'istanza dell'attività attende all'infinito. L'attività non verrà mai completata e i record rimangono nelle tabelle del database di importazione primaria BAM. Considerare il caso di transazioni a esecuzione prolungata, in cui non vi è modo di indicare quando i dati rimanenti arriveranno. Non vi è timeout, dal momento che l'arrivo dei dati dipende dai processi o regola business, dopo i quali l'attività viene contrassegnata come completata. I dati possono arrivare lo stesso giorno o, in casi estremi, l'anno seguente.
La soluzione consiste nell'utilizzare attività correlate.
Suddividere l'attività in due attività. Correlare le due attività e la risposta all'attività originale.
Per altre informazioni sulle attività correlate, vedere Relazioni tra attività.