Procesarea asincronă a tranzacțiilor în cascadă
Anumite tranzacții pot fi configurate în cascadă în toate înregistrările conexe. Aceasta înseamnă că modificarea unei înregistrări părinte este tranzacționată (în cascadă prin) toate înregistrările descendent. Relațiile în cascadă sunt configurate la nivel de tabel. Pentru mai multe informații despre relațiile în cascadă, consultați Configurați comportamentul în cascadă a relației de tabel.
Moduri sincrone vs. asincrone
În mod implicit, operațiunile în cascadă sunt efectuate ca o tranzacție sincronă. Pentru o tranzacție în cascadă sincronă, toate înregistrările afectate sunt identificate de sistem. Pe măsură ce înregistrările sunt procesate, acestea sunt blocate de sistem. După finalizarea tuturor modificărilor, înregistrările sunt deblocate și tranzacția este finalizată.
Tranzacțiile sincrone cu un număr mare de înregistrări pot cauza probleme de performanță pentru medii când tranzacțiile de lungă durată eșuează din cauza expirării timpului de server. Înregistrările sunt blocate, împiedicând executarea altor joburi și tranzacții de utilizator care operează pe aceleași înregistrări. De asemenea, tranzacțiile de lungă durată pot duce la un stoc de tranzacții în așteptare și solicitări care scad performanța sistemului și ar putea cauza oprirea lucrului.
Dacă un mediu se confruntă cu intervale de timp sau cu performanțe degradate în timp ce operațiile în cascadă sincrone sunt în desfășurare, mediul dvs. ar putea avea beneficii prin activarea modului asincron. Principalele diferențe dintre moduri sunt descrise în tabelul următor.
Modul sincron | Modul asincron |
---|---|
Nicio altă lucrare nu poate fi executată pe întregul set de înregistrări selectate (directe sau în cascadă) până la finalizarea operațiunii în cascadă. | Pentru Atribuire, Ștergere și Îmbinare, modificările în cascadă sunt grupate, blocând numai înregistrările procesate în cadrul lotului. Acest lucru permite executarea altor lucrări în timpul operației de schimbare completă în cascadă. |
La finalizarea lucrării, toate datele arată noua valoare dorită. | Pe măsură ce operațiunea rulează, fiecare lot completat afișează valoarea dorită. Aceasta înseamnă că există un moment în care unele date arată valoarea dorită, iar unele arată valoarea inițială până la finalizarea completă a operațiunii. Aceasta este denumită „coerență eventuală”. |
Dacă o singură înregistrare eșuează, toate datele sunt redate la valoarea inițială. Restaurarea necesită reeditarea tuturor înregistrărilor finalizate, ceea ce necesită mai mult timp. | Dacă o singură operațiune nu reușește, este încercată de mai multe ori pentru a realiza finalizarea. Dacă lucrarea nu poate fi finalizată, eșecul este înregistrat în zona Lucrări de sistem . Observați că înregistrările finalizate cu succes păstrează noua valoare. |
Dacă una dintre înregistrările din lista în cascadă are o valoare care este diferită de valoarea așteptată, jobul eșuează și este anulat. De exemplu, să presupunem că înregistrarea de pornire aparține Proprietarului 1 și operația în cascadă dorește să o schimbe la Proprietar 2. Dacă una dintre înregistrările asociate din aval s-a schimbat în Proprietar 3 sau este ștearsă înainte de blocarea, întreaga lucrare este anulată. | Pentru Assign, operația funcționează întotdeauna în modul de suprascriere, schimbând valoarea curentă la noua valoare bazată pe relația părinte-copil. Nu există erori de operațiune din cauza unei nepotriviri a valorii originale. Pentru Delete, dacă lipsește o înregistrare care era așteptată ca parte a setului, toate înregistrările până la punctul de eșec sunt considerate finalizate. Utilizatorul sau administratorul poate reexecuta jobul eșuat, care recalculează jobul pentru a continua fără înregistrarea lipsă. Pentru Merge, dacă există o problemă cu o înregistrare lipsă, lucrarea este reîncercată și executată fără înregistrarea lipsă. |
Modul asincron
Când o tranzacție în cascadă atinge pragul pentru înregistrările incluse, înregistrările sunt procesate asincron,
Operație | Prag |
---|---|
Atribuire | 1000 de înregistrări |
Șterge | 5,000 de înregistrări |
Îmbinare | 1000 de înregistrări |
Urmărirea progresului operațiunii asincrone
Administratorii pot monitoriza procesarea operațiunilor asincrone din domeniul Setări.
conectați-vă la Power Platform centrul de administrare.
Selectați Medii în zona de navigare. Apoi selectați mediul dorit.
Selectați Setări, extindeți Audit și jurnale, apoi selectați Procese de sistem.
Operațiile în cascadă sunt afișate în vizualizarea System Jobs .
Pentru a vizualiza numai operațiuni în cascadă, în selectorul Vizualizare, selectați Operațiuni în cascadă.
Operațiunile în cascadă au oricare dintre următoarele stări:
- Finalizat: toate loturile tranzacției în cascadă au fost finalizate cu succes.
- În curs: modificări în cascadă sunt în desfășurare.
- Eșuat: după mai multe încercări, unele dintre modificările în cascadă au eșuat.
Notă
Nu este posibil să anulați o operațiune în cascadă asincronă. Trebuie să așteptați să se finalizeze, indicând starea Finalizat sau Eșuat.
Deschiderea unei operații în cascadă afișează:
Câte încercări au avut loc pentru tranzacția particulară.
Date și ore create și completate.
Cine a creat operațiunea.
Orice mesaje asociate cu operațiunea, precum motive de eșec sau excepții.
Ce tranzacții în cascadă pot fi procesate în mod asincron?
Alocarea, ștergerea și îmbinarea tranzacțiilor în cascadă pot fi procesate asincron.
Notă
Alte tranzacții, cum ar fi partajarea/anularea accesului, vizualizarea cumulativă și re-parentă sunt în prezent în curs de examinare pentru procesare asincronă.
Depanarea problemelor cu operațiuni în cascadă asincrone
Când joburile în cascadă sincrone eșuează, acestea se opresc și derulează înapoi toate modificările, astfel încât niciuna dintre înregistrări să nu includă modificările solicitate. Acesta poate fi un proces consumator de timp, deoarece derularea înapoi poate dura atât timp cât încercarea inițială, iar reîncercarea operației începe din nou de la prima înregistrare.
Operațiunile asincrone reîncercă de mai multe ori, dacă apare o eroare. În cele mai multe cazuri, reîncercarea operațiunii are ca rezultat succesul, iar operațiunea poate continua până la finalizare. În unele cazuri rare, reîncercarea nu rezolvă problema. Când se întâmplă acest lucru, lucrarea asincronă se întrerupe, iar administratorul și utilizatorul pot depana problema și pot relua lucrarea din punctul în care a fost întreruptă.
Cauzele frecvente ale defecțiunilor în operațiuni în cascadă
Motivele comune pentru eșecul procesării operațiunilor în cascadă includ:
- Excepții de plug-in
- Excepții de securitate
Excepții de plug-in
Plug-in-urile sunt adăugate la procesarea operațiunilor în cascadă pentru a întreprinde acțiuni specifice atunci când se fac modificări la o înregistrare, cum ar fi trimiterea unui e-mail sau declanșarea unei actualizări diferite pentru alte înregistrări. Acestea pot fi furnizate de terți sau dezvoltate intern. Dacă un plug-in generează o excepție, operațiunea în cascadă eșuează. În funcție de motivul excepției, o reîncercare poate rezolva problema. Dacă lucrarea în cascadă asincronă este întreruptă din cauza unor defecțiuni, validați toate pluginurile care sunt asociate cu operațiunile pentru a vă asigura că nu generează excepții. Odată remediată, operațiunea poate fi reluată.
Excepții de securitate
Excepții de securitate apar atunci când utilizatorul care a executat operațiunea în cascadă are privilegii insuficiente pentru a efectua o modificare la una sau mai multe înregistrări sau utilizatorul este dezactivat sau eliminat din sistem.
Dacă utilizatorul este încă în sistem, verificați că are privilegiile necesare pentru a modifica înregistrările și că are permisiunea de a executa acțiunile specificate. După ce acest lucru este rezolvat, reluați lucrarea.
Dacă utilizatorul a fost dezactivat sau eliminat din sistem, reactivarea sau adăugarea din nou a utilizatorului rezolvă problema și lucrarea poate fi reluată. Cu toate acestea, dacă utilizatorul trebuie șters sau dezactivat sau nu ar trebui să aibă permisiuni pentru acțiuni sau înregistrări, operațiunea ar trebui anulată și repornită de către cineva cu permisiunile corespunzătoare.
Pentru orice alte probleme legate de lucrările eșuate, contactați Microsoft Asistența. Mai multe informații: Prezentare generală a asistenței
Depanarea problemelor de ștergere a fișierelor în timpul îmbinării în cascadă
Dacă întâmpinați eșecuri cu operațiunile de îmbinare în cascadă, deoarece fișierele sunt șterse în timpul executării operațiunii, puteți sări peste verificarea parentală. Aceasta permite ca îmbinarea să continue, chiar dacă cineva șterge o înregistrare din set în timp ce operațiunea rulează în fundal. Când alegeți să îmbinați înregistrările, în partea de jos a ferestrei de îmbinare, debifați Verificarea parenting este activată în mod implicit. Debifați această opțiune pentru a ignora opțiunea de verificare parentală .
Exemplu de îmbinare înregistrare
Imaginați-vă că aveți conturi cu o relație cu contactul, care are o relație cu comenzile. Doriți să îmbinați două înregistrări de cont.
Dacă operațiunea rulează cu succes, îmbinarea atribuie toate contactele aferente și comenzile acestora contului țintă.
Dacă în timpul procesului de îmbinare a înregistrărilor, un alt utilizator șterge o înregistrare de contact asociată, dar înregistrările de comandă mai există legate de înregistrarea de contact, lucrarea de îmbinare eșuează deoarece lipsește o înregistrare părinte la o înregistrare descendent. Dacă alegeți să omiteți verificarea parentală în timpul îmbinării înregistrărilor, comenzile cu înregistrarea de contact lipsă sunt îmbinate în înregistrarea contului țintă. Cu toate acestea, nu sunt alocate înregistrări de contact asociate contului țintă și lucrarea se finalizează.
Îmbinarea produce blocări care împiedică alte modificări de acces
Operațiunea Îmbinați în cascadă acordă acces noului proprietar al tabelului subordonat. Pentru a face acest lucru, operația de îmbinare în cascadă accesează și efectuează modificări în tabelul principal de obiecte care necesită o blocare. Dacă o operațiune de îmbinare conține mai multe înregistrări (bazate pe relația cascadă), această blocare ar putea fi activă pentru o perioadă extinsă de timp. Acest lucru ar putea duce la o eroare dacă o operațiune încearcă să acorde sau să revoce accesul unei înregistrări fără legătură în timp ce îmbinarea se execută. Dacă se întâmplă acest lucru, încercați să executați îmbinarea în orele libere, astfel încât blocarea să poată fi redusă.