Condividi tramite


Considerazioni e problematiche note per TPE

Quando si lavora con i profili di rilevamento e il TPE, è consigliabile considerare i problemi seguenti.

La denominazione di cartelle nel TPE

Si notino i requisiti di denominazione seguenti quando si assegnano nomi alle cartelle nell'editor del profilo di rilevamento:

  • La lunghezza della combinazione di valori di istanza del nome della cartella e dell'elemento di dati non deve superare i 128 caratteri.

  • Per le cartelle Continuation e ContinuationID, la denominazione della cartella è la chiave per correlare due orchestrazioni. Ad esempio, se Orchestration A è l'elemento padre di Orchestration B, Orchestration A contiene una cartella di continuazione il cui nome viene mappato direttamente alla cartella ContinuationID in Orchestration B.

Sviluppo di orchestrazioni per la TPE

Non è possibile eseguire il mapping di un'orchestrazione a un'attività aziendale se inizia o termina con una forma non valida. Il motore di orchestrazione non consente il rilevamento di alcune forme. Sono:

  • Assegnazione messaggi

  • Trasformazione

  • Gruppo (attività)

  • Sospendi

  • Ciclo (While)

  • Filiale

  • Terminare

  • Lancio

  • Prendere

  • Mentre forma

    Usare le linee guida seguenti quando si mappano le attività aziendali in modo che l'editor del profilo di rilevamento e altri strumenti BAM possano utilizzarle:

  • Per la forma Gruppo utilizzare una forma Ambito non transazionale.

  • Per la forma While, avvolgerla in una forma Ambito non transazionale.

  • Per le forme Terminate non esiste alcuna soluzione alternativa, perché l'evento finale di questa forma non si verifica mai in uno scenario normale.

  • Non avviare o terminare pianificazioni con nessuna delle forme per le quali non sono consentite operazioni di trascinamento della selezione.

Applicazione di profili di rilevamento che monitorano i processi in esecuzione

L'aggiornamento di un profilo di rilevamento può influire sulle istanze di attività in corso se l'attività include una continuazione BAM. In particolare, se l'aggiornamento al profilo di rilevamento specifica un'intercettazione downstream dei dati per un elemento attività già registrato, è possibile che il valore originale venga sovrascritto. In sostanza, qualsiasi flusso di eventi singolo non sarà interessato dall'applicazione di aggiornamenti del profilo di rilevamento perché ogni oggetto flusso è associato alla versione specifica del profilo che era presente al momento dell'avvio dell'attività o del flusso. Tuttavia, poiché le continuazioni sono i mezzi per correlare più flussi di eventi, i flussi non ancora avviati al momento di un aggiornamento del profilo rileveranno le modifiche nell'aggiornamento, introducendo così la possibile sovrascrittura dei dati descritta. Per altre informazioni sulle continuazioni, vedere Continuazione attività e Come creare una continuazione.

Profili di rilevamento senza una forma di invio o ricezione da cui disegnare le proprietà del messaggio

Le continuazioni tengono traccia delle attività tramite proprietà di contesto o dati di payload uguali tra le attività. Le proprietà, ad esempio ID messaggio, ID servizio e ID istanza, cambiano il valore tra le attività.

È possibile creare profili di rilevamento per gestire questo scenario usando i metodi seguenti:

  • Se un'orchestrazione invia un messaggio tramite un'associazione dinamica a un'altra orchestrazione, è possibile usare un valore di dati payload univoco globale per la continuazione.

  • Se nel messaggio non sono presenti dati di payload univoci, è possibile usare l'ID interscambio del messaggio. Per utilizzare l'ID interscambio, è necessario tracciarlo sulla stessa forma di ricezione. Non è possibile utilizzare l'ID interscambio se si crea un nuovo messaggio, perché l'ID interscambio cambia quando viene creato il nuovo messaggio. Il tracciamento dell'ID di interscambio da qualsiasi elemento che non sia un elemento Receive o Send non è affidabile.

  • È anche possibile usare l'ID messaggio purché lo stesso messaggio ricevuto dalla pipeline venga usato nell'orchestrazione, ovvero la porta di orchestrazione è associata a una pipeline e una forma Receive e l'ID del messaggio vengono rilevati da tale posizione. Se si tiene traccia dell'ID messaggio da una forma diversa, l'ID del messaggio non sarà valido per l'uso nelle continuazioni.

  • Se un'orchestrazione chiama un'altra orchestrazione e non viene passato alcun messaggio, oppure se un'orchestrazione chiama un'altra orchestrazione ma il chiamato non dispone di nessuna forma Construct, Receive o Send dove è possibile recuperare i valori dei dati del payload, l'utente può utilizzare l'ID dell'istanza. L'istanza ID per le orchestrazioni chiamate non cambia.

  • Se l'orchestrazione carica un'altra orchestrazione tramite una chiamata di esecuzione anziché chiamarla direttamente, non è possibile usare alcuna proprietà del messaggio statico per tenere traccia dell'attività. L'utente non può abilitare una continuazione. L'unico modo per eseguire il rilevamento in questa istanza è se un messaggio viene passato attraverso la pipeline che contiene dati di payload univoci su cui eseguire il rilevamento.

Non è possibile usare un ID sessione come token di continuazione per le pipeline di Pass-Through

In un profilo di rilevamento, quando si selezionano elementi da un payload del messaggio, il profilo di rilevamento viene associato allo schema del messaggio. In una pipeline pass-through il valore del nome dello schema è un valore Null. Quando BAM tenta di caricare la configurazione in base al nome della porta e al nome dello schema, non è possibile stabilire la corrispondenza con lo schema dell'ID sessione e non vengono rilevati dati dal motore.

Per le pipeline pass-through, è possibile rimuovere tutto il rilevamento del payload dal profilo di rilevamento o usare pipeline XML se è necessario tenere traccia dei dati del payload.

Uso di nomi di porta univoci

Durante l'enumerazione di porte bidirezionali, il tpe le visualizza come due porte logiche, un invio e una porta di ricezione. Ognuna di queste porte logiche viene visualizzata con lo stesso nome. BizTalk Server consente di creare porte unidirezionale e bidirezionale con lo stesso nome. Ad esempio, è possibile creare una porta bidirezionale denominata "Port1" e quindi creare una porta di ricezione con lo stesso nome. In questi casi il TPE visualizza la porta di ricezione una volta e la porta bidirezionale due volte, una volta come porta di ricezione e una volta come porta di trasmissione.

TPE applicherà i profili di rilevamento a entrambe le porte di ricezione in questo caso. È consigliabile assegnare alle porte nomi univoci per identificarli correttamente.

Uso di orchestrazioni TPE con una forma parallela come prima forma

Se inizi un'orchestrazione con una forma Fork, Parallel o Listen, non puoi eseguire il mapping di un ID attività su uno dei rami. Nei casi di elaborazione parallela è possibile eseguire il mapping dell'ActivityID sopra la forma Fork. È anche possibile consentire a BAM di generare l'ID dell'attività per evitare il problema di una struttura parallela all'inizio dell'orchestrazione.

Importante

Il mapping di un'attività a più percorsi e il mapping dell'ActivityID a un percorso della forma Fork causa un errore quando l'elaborazione segue un percorso in cui l'ActivityID non è mappato.

Disponibilità delle proprietà dei messaggi in fase di progettazione

Quando si creano profili di rilevamento, non sono disponibili tutte le proprietà dei messaggi. È molto probabile che si verifichi quando la forma in cui vengono mappate le proprietà del messaggio si trova all'inizio di un'orchestrazione. In questi casi, il valore delle proprietà del messaggio è Null.

Un esempio è quello in cui la forma Listen è la prima forma di un'orchestrazione. Quando le proprietà del messaggio vengono mappate da questa forma, solo le proprietà seguenti hanno valori: InstanceID, ServiceID e ServiceClassID. MessageID non è incluso nell'ambito a questo punto e ha un valore Null.

Non è possibile mappare le forme all'interno di una forma Loop per segnalare un'attività cardine

I blocchi TPE mappano le fonti contenute all'interno di una forma di ciclo alle attività che sono mappate ad elementi al di fuori del ciclo.

Le attività di loop si riferiscono ad azioni che si ripetono, o si iterano, all'interno di un'orchestrazione. È possibile catturare gli eventi dalle azioni che si ripetono in un ciclo all'interno di un'orchestrazione. A tale scopo, creare un'altra attività e mappare tutti i nuovi traguardi e dati all'interno del ciclo. Ciò è necessario perché l'elaborazione dei dati nel ciclo si verificherà più volte per ogni esecuzione pianificata.

Ad esempio, se si dispone di un ordine di acquisto con più articoli elaborati in un ciclo, domande come "Quali ordini di acquisto hanno prezzi degli articoli pari a $100?" sono ambigue. Le domande non ambigue sono:

Quali ordini di acquisto hanno articoli con un prezzo di $ 100?

Quali ordini di acquisto hanno prezzi totali/min/max articoli di $ 100?

La creazione di domande non ambigue richiede di considerare le voci come qualcosa di separato dall'ordine di acquisto. Nell'Editor profilo di rilevamento, l'attività principale, ad esempio un ordine di acquisto, si collega a tutte le azioni esterne al loop. L'attività figlio, ad esempio un elemento di riga, si mappa alle azioni all'interno del ciclo.

L'approccio tipico all'uso di questi tipi di costrutti consiste nello scomporre il ciclo ripetuto e avere un'attività correlata in base all'attività interna correlata all'attività esterna.

È necessario usare un elemento di payload come ActivityID per l'attività radice e avere questo elemento di payload disponibile in alcuni dei messaggi all'interno del ciclo. Eseguire il mapping dell'attività al nodo della relazione visualizzato sotto l'attività figlio e denominarlo come attività radice.

Profili di rilevamento che si estendono su più applicazioni

Se un profilo di rilevamento si estende su più applicazioni, il profilo di rilevamento deve essere distribuito dopo la distribuzione di tutte le applicazioni nella soluzione. Se il profilo di tracciamento non è l'ultimo elemento distribuito, viene visualizzato il messaggio seguente "Origine mappatura non trovata.", quando la procedura guidata di distribuzione chiama BTTDeploy.exe.

Mappatura di più artefatti di BizTalk Server a un URL di riferimento del documento o a nodi di MessageID

Il TPE consente di trascinare e rilasciare più artefatti di BizTalk Server nello stesso URL di riferimento del documento o nello stesso nodo MessageID.

Nei casi in cui viene eseguito il mapping di più origini allo stesso elemento in un'attività BAM, l'ultimo artefatto rilevato durante l'elaborazione BAM è quello che viene mantenuto nei dati di tracciamento e può essere visualizzato nel portale BAM.

Aggiornamento delle versioni BTT in modo che corrispondano alle versioni della soluzione BizTalk

Gli sviluppatori e gli amministratori BAM possono mantenere la sincronizzazione delle versioni tra i profili di rilevamento e le soluzioni BizTalk automatizzando l'aggiornamento al file BTT. A tale scopo, modificare l'attributo Version nell'elemento DataLevel del file BTT. Nell'elemento di esempio seguente è necessario modificare le informazioni sulla versione negli attributi TargetAssemblyName e SchemaName.

<DataLevel Name="City" SourceTypeSelected="Messaging Payload" TargetAssemblyName="TheImplementationOfOrderMgmt, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c5b33e44ffa4658b" SchemaName="TheImplementationOfOrderMgmt.PurchaseOrder,TheImplementationOfOrderMgmt, Version=1.0.0.0, Culture=neutral, PublicKeyToken=c5b33e44ffa4658b" SomXPath="/*[local-name()='<Schema>' and namespace-uri()='http://TheImplementationOfOrderMgmt.PurchaseOrder']/*[local-name()='PurchaseOrder' and namespace-uri()='http://TheImplementationOfOrderMgmt.PurchaseOrder']/*[local-name()='Header' and namespace-uri()='']/*[local-name()='ShipTo' and namespace-uri()='']/@*[local-name()='City' and namespace-uri()='']" XPath="/*[local-name()='PurchaseOrder' and namespace-uri()='http://TheImplementationOfOrderMgmt.PurchaseOrder']/*[local-name()='Header' and namespace-uri()='']/*[local-name()='ShipTo' and namespace-uri()='']/@*[local-name()='City' and namespace-uri()='']" IsBeginActivity="true" IsEndActivity="false">  

Alcune forme di orchestrazione non possono essere rilevate nel tpe

L'orchestrazione ongine non genera eventi per le forme seguenti e pertanto queste forme non possono essere tracciate o mappate nel tpe:

  • Attività

  • Tutti i rami

  • Sospendi

  • Terminare

  • Lancio

  • Prendere

  • MessageAssignment (perché fa parte della forma Construct)

  • Transform (perché fa parte della forma Construct)

  • Ciclo

TPE non recupera i profili di monitoraggio distribuiti

Dopo un aggiornamento o una ridistribuzione, è possibile che si verifichino difficoltà nel recupero dei profili di rilevamento distribuiti. Ciò può essere causato da una mancata corrispondenza nel modo in cui il nome del server in cui è archiviato il database BizTalkMgmtDb nel Registro di sistema.

BizTalkMgmtDb viene scritto nel Registro di sistema durante la configurazione del gruppo. Il TPE usa la voce per trovare il database di importazione primaria e per filtrare i profili di tracciamento.

Durante la configurazione è possibile immettere il nome del server in diversi formati. Per esempio:

  • mgmtsvr1316267,15001\inst

  • MGMTSVR1316267\inst,15001

    TPE effettua un confronto di stringhe di base quando si usa la voce del Registro di sistema. Per recuperare i profili di rilevamento distribuiti, è necessario esaminare i nomi del server e del database archiviati e immetterli nella finestra di dialogo TPE Set Management Database .

Per determinare la sintassi per i nomi di server e database e immetterlo nel database di gestione BizTalk.

  1. Aprire Gestione Configurazione Personalizzata di BizTalk Server. Per informazioni sull'uso di Gestione configurazione personalizzata, vedere Configurare BizTalk Server.

  2. Nel riquadro di spostamento selezionare Gruppo per aprire la pagina di configurazione del gruppo.

  3. Nella griglia Archivi dati osservare i formati del nome del server e del nome del database.

  4. Aprire il tpe e selezionare la voce di menu Strumenti .

  5. Selezionare la voce di menu Imposta database di gestione per aprire la finestra di dialogo Imposta database di gestione .

  6. Nella casella di testo SQL Server immettere il nome del server usato nel campo Nome server della griglia Archivi dati nella pagina Gruppo di Gestione configurazione personalizzata .

  7. Nella casella di testo Nome database immettere il nome del database utilizzato nel campo Nome database della griglia Archivi dati nella pagina Gruppo di Gestione configurazione personalizzata .

  8. Fare clic sul pulsante OK per salvare le voci.

Vedere anche

Uso del TPE
Editor profilo di monitoraggio