Asinhrona obdelava kaskadnih transakcij
Določene transakcije je mogoče konfigurirati tako, da se kaskadno izvedejo za vse povezane zapise. To pomeni, da se sprememba nadrejenega zapisa prenese na (kaskadno navzdol) vse podrejene zapise. Kaskadni odnosi so konfigurirani na ravni tabele. Za več informacij o kaskadnih odnosih glejte Konfiguracija kaskadnega obnašanja odnosa tabele.
Sinhroni in asinhroni načini
Kaskadni postopki se privzeto izvajajo kot sinhrona transakcija. Pri sinhroni kaskadni transakciji sistem prepozna vse vključene zapise. Med obdelavo zapisov jih sistem zaklene. Ko so vse spremembe dokončane, se zapisi odklenejo in transakcija je zaključena.
Sinhrone transakcije z velikim številom zapisov lahko povzročijo težave z zmogljivostjo okolja, ko dolgotrajne transakcije ne uspejo zaradi časovnih omejitev strežnika. Zapisi so zaklenjeni, kar preprečuje izvajanje drugih opravil in uporabniških transakcij, ki delujejo na istih zapisih. Prav tako lahko dolgotrajne transakcije povzročijo kopičenje čakajočih transakcij in zahtev, ki zmanjšajo zmogljivost sistema in lahko povzročijo zaustavitev dela.
Če se med izvajanjem sinhronih kaskadnih postopkov v okolju prihaja do časovnih omejitev ali slabšega delovanja, bi lahko vašemu okolje morda koristilo, da omogočite asinhroni način. Glavne razlike med načini so opisane v naslednji tabeli.
Sinhroni način | Asinhroni način |
---|---|
Za celoten nabor izbranih zapisov ni mogoče izvesti nobenega drugega posla (neposrednega ali kaskadnega), dokler kaskadni postopek ni končan. | Za dodelitev, brisanje in spajanje so kaskadne spremembe paketne, pri čemer se zaklenejo samo zapisi, ki se obdelujejo znotraj paketa. To drugim poslom omogoča izvajanje med celotno kaskadno operacijo spreminjanja. |
Po zaključku posla vsi podatki prikazujejo novo želeno vrednost. | Ko se posel izvaja, vsak dokončani paket prikazuje želeno vrednost. To pomeni, da obstaja čas, ko nekateri podatki prikazujejo želeno vrednost, nekateri pa prvotno vrednost, dokler se celotna operacija ne zaključi. To se imenuje "končna doslednost". |
Če en sam zapis ne uspe, se vsi podatki vrnejo na prvotno vrednost. Povratek zahteva ponovno urejanje vseh dokončanih zapisov, kar traja več časa. | Če posamezen posel ne uspe, se zažene večkrat in poskusi dokončati. Če opravila ni mogoče dokončati, se napaka zabeleži v območju Sistemska opravila . Upoštevajte, da uspešno dokončani zapisi ohranijo novo vrednost. |
Če ima eden od zapisov na kaskadnem seznamu vrednost, ki se razlikuje od pričakovane vrednosti, opravilo ne uspe in se povrne nazaj. Na primer, predpostavimo, da začetni zapis pripada Lastniku 1 in kaskadna operacija ga želi spremeniti v Lastniku 2. Če se eden od spodnjih povezanih zapisov spremeni v Lastnik 3 ali se izbriše, preden pride do zaklepanja, se celotno opravilo povrne nazaj. | Za Dodeli operacija vedno deluje v načinu prepisovanja, pri čemer se trenutna vrednost spremeni v novo vrednost na podlagi razmerja starš-otrok. Zaradi neusklajenosti prvotnih vrednosti posel ne more biti neuspešen. Za Izbriši, če manjka zapis, ki je bil pričakovan kot del niza, se vsi zapisi do točke napake štejejo za dokončane. Uporabnik ali skrbnik lahko znova izvede neuspelo opravilo, ki ponovno izračuna opravilo za nadaljevanje brez manjkajočega zapisa. Če pri spajanju pride do težave z manjkajočim zapisom, se opravilo znova poskusi in izvede brez manjkajočega zapisa. |
Asinhroni način
Ko kaskadna transakcija doseže prag za vključene zapise, se zapisi obdelajo asinhrono,
Postopek | Prag |
---|---|
Dodeljevanje | 1.000 zapisov |
Delete | 5,000 zapisov |
Spajanje | 1.000 zapisov |
Spremljanje napredovanja asinhrone operacije
Skrbniki lahko spremljajo obdelavo asinhronih operacij v območju Nastavitve.
Prijavite se v Power Platform skrbniško središče.
Izberite možnost Okolja v območju za krmarjenje. Nato izberite želeno okolje.
Izberite Nastavitve, razširite možnost Spremljanje sprememb in dnevniki in nato izberite Sistemski posel.
Kaskadne operacije so prikazane v pogledu Sistemska opravila .
Če si želite ogledati samo kaskadne postopke, v izbirniku za Pogled izberite Kaskadni postopki.
Kaskadni postopki imajo enega od naslednjih stanj:
- Dokončano: Vsi paketi kaskadne transakcije so bili uspešno zaključeni.
- V teku: V teku so kaskadne spremembe.
- Neuspešno: Po večkratnih ponovnih poskusih nekatere kaskadne spremembe niso uspele.
opomba,
Asinhronega kaskadnega posla ni mogoče preklicati. Počakati morate, da se dokonča, kar prepoznate po stanju Končano ali Ni uspelo.
Če odprete kaskadni postopek, se prikažejo naslednji podatki:
Koliko poskusov je bilo opravljenih pri izvedbo posamezne transakcije.
Datumi in ure ustvarjanj in zaključkov.
Kdo je ustvaril posel.
Vsa sporočila, povezana s poslom, na primer vzroki za neuspeh ali izjeme.
Katere kaskadne transakcije je mogoče obdelati asinhrono?
Kaskadne transakcije za dodeljevanje, brisanje in spajanje je mogoče obdelati asinhrono.
opomba,
Druge transakcije, kot so skupna raba/preklic skupne rabe, skupni pogled in ponovna nadrejenost, so trenutno v pregledu zaradi asinhrone obdelave.
Odpravljanje težav z asinhronimi kaskadnimi operacijami
Ko sinhrona kaskadna opravila ne uspejo, se ustavijo in povrnejo vse spremembe, tako da noben od zapisov ne vključuje zahtevanih sprememb. To je lahko dolgotrajen postopek, saj lahko povrnitve trajajo tako dolgo kot prvotni poskus, ponovni poskus operacije pa se začne znova od prvega zapisa.
Če pride do napake, asinhrone operacije poskusijo večkrat. V večini primerov je vnovični poskus posla uspešen in posel se lahko nadaljuje do konca. V nekaterih redkih primerih ponovni poskus ne reši težave. Ko se to zgodi, se asinhrono opravilo zaustavi, skrbnik in uporabnik pa lahko odpravita težavo in nadaljujeta opravilo od točke, kjer je bilo začasno ustavljeno.
Pogosti vzroki za napake pri kaskadnih operacijah
Pogosti razlogi za napake pri obdelavi kaskadnih operacij vključujejo:
- Izjeme vtičnikov
- Varnostne izjeme
Izjeme vtičnikov
Vtičniki so dodani obdelavi kaskadnih operacij za izvedbo določenih dejanj, ko se zapis spremeni, kot je pošiljanje e-pošte ali sprožitev drugačne posodobitve drugih zapisov. Lahko jih zagotovijo neodvisni ponudniki ali pa jih razvijejo sami. Če vtičnik ustvari izjemo, kaskadna operacija ne uspe. Težavo lahko odpravi vnovični poskus odvisno od razloga za izjemo. Če je asinhrono kaskadno opravilo začasno ustavljeno zaradi napak, preverite vse vtičnike, ki so povezani z operacijami, da se prepričate, da ne ustvarjajo izjem. Ko je težava odpravljena, se lahko posel nadaljuje.
Varnostne izjeme
Varnostne izjeme se pojavijo, kadar uporabnik, ki je izvedel kaskadno operacijo, nima zadostnih pravic za spremembo enega ali več zapisov ali pa je uporabnik onemogočen ali odstranjen iz sistema.
Če je uporabnik še vedno v sistemu, preverite, ali ima potrebne privilegije za spreminjanje zapisov in ali ima dovoljenje za izvajanje navedenih dejanj. Ko je to rešeno, nadaljujte z delom.
Če je bil uporabnik onemogočen ali odstranjen iz sistema, ponovno omogočanje ali ponovno dodajanje uporabnika odpravi težavo in opravilo je mogoče nadaljevati. Če pa je treba uporabnika izbrisati ali onemogočiti ali če ne bi smel imeti dovoljenj za dejanja ali zapise, mora nekdo, ki ima ustrezna dovoljenja, posel preklicati in ga znova zagnati.
Za vse druge težave z neuspelimi opravili se obrnite na Microsoft podporo. Več informacij: Pregled podpore
Odpravljanje težav z brisanjem datotek med kaskadnim spajanjem
Če pride do napak pri kaskadnih postopkih spajanja, ker so datoteke med izvajanjem posla izbrisane, lahko preskočite preverjanje nadrejenega elementa. To omogoča nadaljevanje spajanja, tudi če nekdo iz nabora izbriše zapis, medtem ko se posel izvaja v ozadju. Ko se odločite za spajanje zapisov, na dnu okna za spajanje počistite polje Starševsko preverjanje je privzeto omogočeno. Počistite to polje, če želite prezreti možnost starševskega preverjanja .
Primer spajanja zapisov
Predstavljajte si, da imate kupce z odnosom s stiki, ki imajo odnos z naročili. Želite združiti dva zapisa kupcev.
Če se posel uspešno zažene, spojitev ciljnemu kupcu dodeli vse povezane stike in njihova naročila.
Če drug uporabnik med postopkom združevanja zapisov izbriše soroden zapis stika, vendar še vedno obstajajo zapisi naročil, povezani z zapisom stika, opravilo združevanja ne uspe, ker manjka nadrejeni zapis v podrejeni zapis. Če se med združevanjem zapisov odločite, da preskočite preverjanje nadrejenosti, se naročila z manjkajočim zapisom stika združijo v zapis ciljnega računa. Vendar ciljnemu računu ni dodeljen noben povezan zapis stikov in opravilo je dokončano.
Spajanje povzroči zaklepanja, ki preprečijo druge spremembe dostopa
Kaskadni postopek za spajanje omogoča dostop novemu lastniku podrejene tabele. Če želite to narediti, operacija kaskadnega združevanja dostopa in spreminja tabelo glavnih predmetov, ki zahtevajo zaklepanje. Če operacija združevanja vsebuje veliko zapisov (na podlagi kaskadnega odnosa), je to zaklepanje lahko v uporabi dalj časa. To lahko povzroči napako, če poskuša operacija odobriti ali preklicati dostop do nepovezanega zapisa med izvajanjem združevanja. Če se to zgodi, poskusite izvesti združevanje izven delovnih ur, da zmanjšate blokiranje.