Sdílet prostřednictvím


Asynchronní zpracování kaskádových transakcí

Některé transakce lze nakonfigurovat tak, aby kaskádovaly napříč všemi souvisejícími záznamy. To znamená, že změna nadřazeného záznamu je převedena (kaskádově dolů) na všechny podřízené záznamy. Kaskádové vztahy jsou konfigurovány na úrovni tabulky. Další informace o kaskádování vztahů najdete v tématu Konfigurace kaskádového chování vztahu mezi tabulkami.

Synchronní vs. asynchronní režimy

Ve výchozím nastavení jsou kaskádové operace prováděny jako synchronní transakce. U synchronní kaskádové transakce jsou systémem identifikovány všechny dotčené záznamy. Jakmile jsou záznamy zpracovávány, systém je uzamkne. Po dokončení všech změn se záznamy odemknou a transakce je dokončena.

Synchronní transakce s velkým počtem záznamů mohou způsobit problémy s výkonem v prostředích, kde selžou dlouhotrvající transakce z důvodu časového limitu serveru. Záznamy jsou uzamčeny, což zabraňuje provádění dalších úloh a uživatelských transakcí, které pracují se stejnými záznamy. Dlouhotrvající transakce mohou také vést k nevyřízení čekajících transakcí a požadavků, což snižuje výkon systému a může způsobit zastavení práce.

Pokud v prostředí dochází k překročení časového limitu nebo snížení výkonu, zatímco probíhají synchronní kaskádové operace, mohlo by pro vaše prostředí být přínosem povolení asynchronního režimu. Hlavní rozdíly mezi režimy jsou popsány v následující tabulce.

Synchronní režim Asynchronní režim
Na celé sadě vybraných záznamů (přímých nebo kaskádových) nelze provádět žádné další úlohy, dokud není kaskádová operace dokončena. U funkce Přiřadit, Odstranit a Sloučit jsou kaskádové změny dávkovány a zamykají se pouze záznamy zpracovávané v dávce. To umožňuje provádět další úlohy během celé operace kaskádové změny.
Po dokončení úlohy se u všech dat zobrazí nová požadovaná hodnota. Při spuštění úlohy se u každé dokončené dávky zobrazí požadovaná hodnota. To znamená, že nastane čas, kdy některá data zobrazí požadovanou hodnotu a jiná zobrazí původní hodnotu, dokud není dokončena celá operace. To se často označuje jako "eventuální konzistence".
Pokud jeden záznam selže, všechna data jsou vrácena zpět na původní hodnotu. Vrácení zpět vyžaduje nové úpravy všech dokončených záznamů, což zabere více času. Pokud jedna úloha selže, dojde k několika pokusům o opakování a dokončení. Pokud úlohu nelze dokončit, je chyba zaznamenána v oblasti Systémové úlohy. Všimněte si, že úspěšně dokončené záznamy si zachovají novou hodnotu.
Pokud jeden ze záznamů v kaskádovém seznamu má hodnotu, která je jiná než očekávaná hodnota, úloha selže a vrátí se zpět. Například předpokládejme, že počáteční záznam patří vlastníkovi 1 a kaskádová operace to chce změnit na vlastníka 2. Pokud se jeden z navazujících záznamů změnil na Vlastník 3 nebo je odstraněn před provedením zámku, celá úloha se vrátí zpět. Pro Přiřazení, operace vždy pracuje v režimu přepsání a mění aktuální hodnotu na novou hodnotu na základě vztahu nadřazenosti a podřízenosti. Neexistují žádná selhání úloh kvůli nesouladu původních hodnot. V případě funkce Odstranit, pokud chybí záznam, který byl očekáván jako součást sady, jsou všechny záznamy až do bodu selhání považovány za dokončené. Uživatel nebo správce může znovu spustit neúspěšnou úlohu, která přepočítá úlohu tak, aby pokračovala bez chybějícího záznamu. Pokud v případě sloučení dojde k problému s chybějícím záznamem, úloha se zopakuje a provede se bez chybějícího záznamu.

Asynchronní režim

Když kaskádová transakce dosáhne prahové hodnoty pro zahrnuté záznamy, jsou záznamy zpracovány asynchronně,

Operation Prahová hodnota
Přiřadit 1 000 záznamů
Odstranění 5,000 záznamů
Sloučení 1 000 záznamů

Sledování postupu asynchronní operace

Správci mohou sledovat zpracování asynchronních operací v systému oblasti Nastavení.

  1. Přihlaste se k centru pro správu Power Platform.

  2. Vyberte Prostředí v navigační oblasti. Pak vyberte požadované prostředí.

  3. Vyberte Nastavení, Rozbalte Audit a protokoly a vyberte Systémové úlohy.

  4. Kaskádové operace jsou zobrazeny v zobrazení Systémové úlohy.

    Zobrazení kaskádových operací.

    Chcete-li zobrazit pouze kaskádové operace, ve volbě Zobrazení vyberte Kaskádové operace.

    Volba zobrazení kaskádových operací.

Kaskádové operace mají některý z následujících stavů:

  • Dokončeno: Všechny dávky kaskádové transakce byly úspěšně dokončeny.
  • Probíhá: Probíhají kaskádové změny.
  • Selhalo: Po více opakovaných pokusech některé z kaskádových změn selhaly.

Poznámka:

Není možné zrušit asynchronní kaskádovou úlohu. Musíte počkat, až se dokončí s označením stavu Dokončeno nebo Neúspěch.

Otevření kaskádové operace zobrazí:

  • Ke kolika opakovaným pokusům došlo pro konkrétní transakci.

  • Data a časy vytvoření a dokončení.

  • Kdo vytvořil úlohu.

  • Jakékoli zprávy spojené s úlohou, například důvody selhání nebo výjimky.

    Záznam kaskádové operace.

Jaké kaskádové transakce lze zpracovat asynchronně?

Přiřazení, odstranění a sloučení kaskádových transakcí lze zpracovat asynchronně.

Poznámka:

Ostatní transakce, jako je sdílení / sdílení, souhrnné zobrazení a opětovné nadřazení, jsou v současné době kontrolovány pro asynchronní zpracování.

Odstraňování problémů s asynchronními kaskádovými operacemi

Když synchronní kaskádové úlohy selžou, zastaví se a vrátí všechny změny, aby žádný ze záznamů neobsahoval požadované změny. Může to být časově náročný proces, protože vrácení zpět může trvat tak dlouho, dokud původní pokus a opakování operace nezačne znovu od prvního záznamu.

Asynchronní operace se pokusí opakovat několikrát, pokud dojde k chybě. Ve většině případů vede opakování úlohy k úspěchu a úloha může pokračovat. V některých ojedinělých případech se opakovaným pokusem problém nevyřeší. Když k tomu dojde, asynchronní úloha se pozastaví a správce a uživatel mohou problém vyřešit a obnovit úlohu od místa, kde byla pozastavena.

Běžné příčiny selhání v kaskádových operacích

Mezi běžné důvody selhání při zpracování kaskádových operací patří:

  • Výjimky modulu plug-in
  • Výjimky zabezpečení

Výjimky modulu plug-in

Moduly plug-in se přidávají ke zpracování kaskádových operací, aby se provedly konkrétní akce při provedení změn v záznamu, jako je odeslání e-mailu nebo spuštění jiné aktualizace u jiných záznamů. Ty mohou být poskytovány třetími stranami nebo vyvíjeny interně. Pokud modul plug-in generuje výjimku, kaskádová operace se nezdaří. V závislosti na důvodu výjimky může problém vyřešit opakování. Pokud je asynchronní kaskádová úloha pozastavena z důvodu selhání, ověřte všechny moduly plug-in, které jsou přidruženy k operacím, abyste se ujistili, že negenerují výjimky. Po opravě lze úlohu obnovit.

Výjimky zabezpečení

Výjimky zabezpečení nastávají, když uživatel, který provedl kaskádovou operaci, nemá dostatečná oprávnění k provedení změny jednoho nebo více záznamů, nebo je uživatel deaktivován nebo odebrán ze systému.

Pokud je uživatel stále v systému, ověřte, zda má potřebná oprávnění k úpravám záznamů a zda má oprávnění k provádění zadaných akcí. Po vyřešení pokračujte v práci.

Pokud byl uživatel deaktivován nebo odstraněn ze systému, opětovné povolení nebo čtení uživatele problém vyřeší a lze pokračovat v úloze. Pokud však musí být uživatel odstraněn nebo deaktivován nebo pokud nemá mít oprávnění pro akce nebo záznamy, úloha by měla být zrušena a restartována někým s příslušnými oprávněními.

V případě dalších problémů s neúspěšnými úlohami kontaktujte podporu společnosti Microsoft. Další informace: Přehled podpory

Odstraňování problémů s mazáním souborů během kaskádového sloučení

Pokud narazíte na selhání při operacích kaskádové, protože soubory jsou odstraněny během běhu úlohy, můžete kontrolu nadřazenosti přeskočit. To umožňuje, aby sloučení pokračovalo, i když někdo odstraní záznam ze sady, zatímco úloha běží na pozadí. Když se rozhodnete sloučit záznamy, ve spodní části okna sloučení zrušte volbu Kontrola nadřazenosti je ve výchozím nastavení povolena. Chcete-li ignorovat kontrolu nadřazenosti, zrušte zaškrtnutí tohoto políčka.

Dialogové okno Sloučit záznamy.

Příklad záznamu sloučení

Představte si, že máte obchodní vztahy se vztahem ke kontaktu, který má vztah k objednávkám. Chcete sloučit dva záznamy obchodního vztahu.

Pokud úloha proběhne úspěšně, sloučení přiřadí všechny související kontakty a jejich objednávky cílovému obchodnímu vztahu.

Pokud během procesu slučování záznamů jiný uživatel odstraní související záznam kontaktu, ale záznamy objednávky stále existují v souvislosti se záznamem kontaktu, úloha sloučení se nezdaří, protože chybí nadřazený záznam k podřízenému záznamu. Pokud se rozhodnete přeskočit kontrolu nadřazenosti během slučování záznamů, objednávky s chybějícím záznamem kontaktu jsou sloučeny do záznamu cílového obchodního vztahu. K cílovému obchodnímu vztahu však nejsou přiřazeny žádné související záznamy kontaktů a úloha se dokončí.

Sloučení způsobující uzamčení, která brání dalším změnám přístupu

Operace Sloučení kaskádování uděluje přístup novému vlastníkovi podřízené tabulky. K tomu operace kaskádové sloučení přistupuje a provádí změny v tabulce objektů zabezpečení, které vyžadují zámek. Pokud by operace sloučení obsahovala mnoho záznamů (na základě kaskádového vztahu), mohl by být tento zámek zaveden na delší dobu. To by mohlo vést k chybě, pokud se operace pokusí udělit/odejmout přístup nesouvisejícímu záznamu, zatímco běží slučování. Pokud k tomu dojde, zkuste provést sloučení mimo pracovní dobu, aby bylo možné omezit blokování.

Viz také

Přehled vztahů mezi tabulkami