Condividi tramite


Elaborazione asincrona di transazioni a catena

Alcune transazioni possono essere configurate a catena in tutti i record correlati. Ciò significa che la modifica in un record padre viene trasferita (passando a catena) a tutti i record figlio. Le relazioni a catena sono configurate a livello di tabella. Per ulteriori informazioni sulle relazioni a catena, vedi Configurare il comportamento a catena delle relazioni di tabelle.

Modalità sincrona e asincrona

Per impostazione predefinita, le operazioni a catena vengono eseguite come transazione sincrona. Per una transazione a catena sincrona, tutti i record interessati vengono identificati dal sistema. Mentre i record vengono elaborati, vengono bloccati dal sistema. Dopo che tutte le modifiche sono state completate, i record vengono sbloccati e la transazione è completata.

Le transazioni sincrone con un numero elevato di record possono causare problemi di prestazioni per gli ambienti quando le transazioni a esecuzione prolungata non riescono a causa dei timeout nei server. I record vengono bloccati, impedendo l'esecuzione di altri processi e transazioni utente che operano sugli stessi record. Inoltre, le transazioni a esecuzione prolungata potrebbero comportare un backlog di transazioni e richieste in sospeso che riducono le prestazioni di sistema e possono causare interruzioni al lavoro.

Se un ambiente registra timeout o prestazioni ridotte mentre le operazioni catena sincrone sono in corso, l'ambiente potrebbe avvantaggiarsi abilitando la modalità asincrona. Le differenze principali tra le modalità vengono descritte nella tabella seguente.

Modalità sincrona Modalità asincrona
Nessun altro processo può essere eseguito sull'intero set di record selezionati (diretto o a catena) finché l'operazione a catena non sia stata completata. Per Assegnazione, Eliminazione e Unione le modifiche a catena vengono elaborate in batch, bloccando solo i record elaborati nel batch. Ciò consente l'esecuzione di altri processi durante l'operazione di modifica a catena completa.
Quando il processo è stato completato tutti i dati mostrano il nuovo valore desiderato. Durante l'esecuzione del processo ogni batch completato visualizza il valore desiderato. Ciò significa che ci sarà un momento in cui alcuni dati mostrano il valore desiderato e altri mostrano il valore originale finché l'operazione non viene completata. Questo viene chiamato "coerenza finale".
Se un singolo record ha esito negativo, per tutti i dati viene eseguito il rollback al valore originale. Il ripristino dello stato precedente richiede una nuova modifica di tutti i record completati, il che richiede più tempo. Se un singolo processo ha esito negativo, viene riprovato più volte per tentare il completamento. Se il processo non può essere completato, l'errore viene registrato nell'area Processi di sistema. Si noti che i record correttamente completati mantengono il nuovo valore.
Se uno dei record nell'elenco a catena ha un valore diverso dal valore previsto, il processo non riesce e si ha il rollback. Ad esempio, supponi che il record iniziale appartiene a Proprietario 1 e l'operazione a catena desidera cambiarlo in Proprietario 2. Se uno dei record correlati a valle è cambiato in Proprietario 3 o viene eliminato prima del blocco, si verifica il rollback dell'intero processo. Per Assegnazione, l'operazione funziona sempre in modalità di sovrascrittura e cambia il valore corrente nel nuovo valore in base alla relazione padre figlio. Non ci sono errori di processo dovuti a un valore originale non corrispondente. Per Eliminazione, se manca un record previsto come parte del set, tutti i record fino al punto di errore vengono considerati completati. L'utente o l'amministratore può eseguire di nuovo il processo non riuscito, che viene ricalcolato per continuare senza il record mancante. Per Unione, se si verifica un problema con un record mancante, il processo viene ripetuto ed eseguito senza il record mancante.

Plug-in e modalità asincrona

Quando una transazione a catena soddisfa la soglia per i record inclusi e non ha plug-in associati ai record, i record sono elaborati in modo asincrono.

Operazione Threshold
Assegna 1.000 record
Elimina 10.000 record
Unire 1.000 record

Se è presente un plug-in assegnato a un record all'interno del batch asincrono, l'aggiornamento o l'eliminazione del singolo record insieme a tutti i plug-in associati a quel record viene eseguito in modo sincrono. Ciò si verifica come parte di una transazione prima di passare al record successivo nel batch asincrono.

Se un plug-in all'interno della transazione asincrona attiva una nuova eliminazione o assegnazione a cascata, la nuova transazione a cascata viene sempre eseguita in modo sincrono all'interno della transazione asincrona corrente. Ciò impedisce di avere più livelli di transazioni asincrone.

Rilevamento dell'avanzamento delle operazioni asincrone

Gli amministratori possono monitorare l'elaborazione delle operazioni asincrone nell'area Impostazioni.

  1. Accedi all'interfaccia di amministrazione di Power Platform.

  2. Seleziona Ambienti nell'area di navigazione. Quindi seleziona l'ambiente desiderato.

  3. Seleziona Impostazioni, espandi Controllo e registri e quindi seleziona Processi di sistema.

  4. Le operazioni a catena appaiono nella visualizzazione Processi di sistema.

    Visualizzazione Operazioni a catena.

    Per visualizzare solo le operazioni a catena, nel selettore Visualizza selezionare Operazioni a catena.

    Selettore Visualizzazione Operazioni a catena.

Le operazioni a catena hanno uno degli stati seguenti:

  • Completati: tutti batch della transazione a catena sono stati completati correttamente.
  • In corso: le modifiche a catena sono in corso.
  • Non riuscito: dopo diversi tentativi alcune delle modifiche a catena non sono riuscite.

Nota

Non è possibile annullare un processo a catena asincrono. È necessario attenderne il completamento mostrato dallo stato di Completato o Non riuscito.

L'apertura di un'operazione a catena mostra:

  • Il numero di tentativi effettuati per la transazione specifica.

  • Date e ore di creazione e completamento.

  • Autore del processo.

  • Qualsiasi messaggio associati al processo, qad esempio motivi di errore, o eccezioni.

    Record operazioni a catena.

Quali transazioni a catena possono essere elaborate in modo asincrono?

Le transazioni a catena di assegnazione, eliminazione e unione possono essere elaborate in modo asincrono.

Nota

Altre transazioni, come condivisione/annullamento condivisione, visualizzazione rollup e ridefinizione parentela sono attualmente in fase di revisione per l'elaborazione asincrona.

Risoluzione dei problemi con le operazioni a cascata asincrone

Quando i processi a cascata sincroni non riescono, vengono interrotti e viene eseguito il rollback di tutte le modifiche in modo che nessuno dei record includa le modifiche richieste. Tale procedura può richiedere parecchio tempo poiché i rollback possono durare quanto il tentativo originale e se si ripete l'operazione questa ricomincia dal primo record.

Le operazioni asincrone vengono ripetute numerose volte se si verifica un errore. Nella maggior parte dei casi, un nuovo tentativo ha esito positivo e il processo viene completato. In alcuni rari casi, effettuare un nuovo tentativo non risolve il problema. Quando ciò accade, il processo asincrono viene sospeso, l'amministratore e l'utente risolvono il problema e il processo viene ripreso dal punto in cui era stato interrotto.

Cause comuni di errori nelle operazioni a cascata

Alcuni motivi comuni alla base degli errori nell'elaborazione delle operazioni a cascata sono:

  • Eccezioni plug-in
  • Eccezioni di sicurezza

Eccezioni plug-in

I plugin vengono aggiunti all'elaborazione delle operazioni a cascata per eseguire azioni specifiche quando vengono apportate modifiche a un record, come l'invio di un messaggio e-mail o l'attivazione di un aggiornamento diverso per altri record. I plugin possono essere forniti da terze parti o sviluppati internamente. Se un plugin genera un'eccezione, l'operazione a cascata non riesce. A seconda del motivo dell'eccezione, un nuovo tentativo potrebbe risolvere il problema. Se il processo a cascata asincrono viene sospeso a causa di errori, convalida tutti i plug-in associati alle operazioni per assicurarti che non generino eccezioni. Una volta risolto il problema, il processo può riprendere.

Eccezioni di sicurezza

Le eccezioni di sicurezza si verificano quando l'utente che ha eseguito l'operazione a cascata non dispone di privilegi sufficienti per apportare una modifica a uno o più record oppure l'utente viene disabilitato o rimosso dal sistema.

Se l'utente è ancora nel sistema, verifica che disponga dei privilegi necessari per modificare i record e che disponga dell'autorizzazione per eseguire le azioni specificate. Una volta risolto il problema, riprendi il processo.

Se l'utente è stato disabilitato o rimosso dal sistema, l'abilitazione o l'aggiunta dell'utente risolve il problema e il processo può essere ripreso. Tuttavia, se l'utente deve essere eliminato o disabilitato o non è supposto disporre delle autorizzazioni per azioni o record, il processo deve essere annullato e riavviato da qualcuno con le autorizzazioni appropriate.

Per qualsiasi altro problema con processi non riusciti, contatta il supporto Microsoft. Per maggiori informazioni: Panoramica sul supporto

Risoluzione dei problemi di eliminazione di file durante l'unione a cascata

Se si verificano errori con le operazioni di unione a cascata in quanto i file vengono eliminati durante l'esecuzione del processo, puoi ignorare il controllo dell'elemento padre. Ciò consente di continuare l'unione anche se qualcuno elimina un record dal set mentre il processo è in esecuzione in background. Quando scegli di unire i record, nella parte inferiore della finestra di unione, deseleziona l'opzione Il controllo padre è abilitato per impostazione predefinita. Deseleziona questa casella per ignorare il controllo dell'elemento padre..

Finestra di dialogo Unisci record.

Esempio di unione di record

Supponi di avere account correlati a un contatto che è correlato a ordini. e che desideri unire due record di account.

Se il processo viene eseguito correttamente, l'unione assegna tutti i contatti correlati e i relativi ordini all'account di destinazione.

Se durante l'elaborazione dell'unione dei record un altro utente elimina un record di contatto correlato, ma esistono ancora record di ordine relativi al record di contatto, il processo di unione non riesce poiché manca un record da padre a figlio. Se scegli di ignorare il controllo dell'elemento padre durante l'unione dei record, gli ordini con il record di contatto mancante vengono uniti nel record dell'account di destinazione. Tuttavia, nessun record di contatto correlato viene assegnato all'account di destinazione e il processo viene completato.

Unione che causa blocchi che impediscono altre modifiche all'accesso

L'operazione Cascade Merge concede l'accesso al nuovo proprietario della tabella subordinata. A tale scopo, l'operazione Cascade Merge accede e apporta modifiche alla tabella degli oggetti principali che richiedono un blocco. Se un'operazione di unione contiene molti record (in base alla relazione a cascata), questo blocco potrebbe essere attivo per un periodo di tempo prolungato. Ciò potrebbe causare un errore se un'operazione tenta di concedere o revocare l'accesso a un record non correlato mentre è in esecuzione l'unione. In questo caso, prova a eseguire l'unione fuori orario in modo da ridurre il blocco.

Vedi anche

Panoramica delle relazioni di tabella