Sdílet prostřednictvím


Provedení obnovení

Správce prostředků usnadňuje řešení trvalý zařazení v transakci tím, že reenlisting účastník transakce po selhání prostředku.

Proces obnovení

Trvale zařazení prostředek do (popsaného implementace IEnlistmentNotification rozhraní), může být později oprávněné pro obnovení, měli byste zavolat EnlistDurable metody. Kromě toho je třeba zadat EnlistDurable metodu se identifikátor správce prostředků ( Guid) používané při konzistentně popisek účastník transakce v případě selhání prostředku. Z tohoto důvodu Guid by měl být zadaný počáteční volání Enlist identické s parametrem resourceManagerIdentifier ve Reenlist volání během obnovení. V opačném TransactionException je vyvolána. Další informace o trvalých zařazeních naleznete v tématu Zařazení prostředků jako účastníci v transakci.

Ve fázi prepare (fáze 1) protokolu 2PC, jakmile obdrží implementace správce trvalý prostředků Prepare oznámení, jeho záznam připravit ji by měl protokolu v průběhu této fáze. Záznam by měl obsahovat všechny informace, které jsou nezbytné pro dokončení transakce na potvrzení. K přípravě záznamu lze později získat přístup během obnovení načtením RecoveryInformation vlastnosti prepareEnlistment zpětného volání. Není třeba provádět v rámci záznamu protokolování Prepare jako správce prostředků metodu to lze provést v pracovní podproces.

Proces obnovení se skládá ze dvou kroků:

Krok 1 – ReEnlist

Správce prostředků prozkoumá záznamu Příprava informací pro každou zařazení, který je nejistoty. To lze provést prostřednictvím zkoušení RecoveryInformation vlastnost PreparingEnlistment zpětné volání, které je předán správce prostředků v Prepare oznámení během fáze 1.

Pro každou takové zařazení zkontroluje, vyvolá Reenlist na správce transakcí. Tato metoda předává na jedinečné Guid který identifikuje správce prostředků, stejně jako informace zařazení v bajtové pole. Nový Enlistment je vrácen objekt. Pokud reenlistment selže s výjimku, bude nutné správce prostředků se zkuste připojit znovu později.

By měla volat pouze Reenlist metodu po restartování správce prostředků z selhání. Kromě toho by měla pouze reenlist nepřeloženého transakce zapsané podle správce prostředků během počátečního Prepare fáze dvoufázového potvrzení. Jakékoli pokusy o tuto metodu lze volat v neplatný časech může chybné výsledkům.

Když je účastník reenlisted pomocí této metody metody fáze 2 IEnlistmentNotification která odpovídají výstup transakce (to znamená, Commit , Rollback nebo InDoubt ) se nazývají podle potřeby.

Krok 2 – dokončení obnovení

Po dokončení všech reenlistments volá správce prostředků RecoveryComplete metody. Tato metoda se dokončí obnovení a informuje správce transakcí, aby správce prostředků nemá žádné další transakce nejistoty. Tímto způsobem správce prostředků zaručuje, že nebude volat Reenlist metoda znovu.

Správce prostředků není nutné před zapsání v nové transakce vyřešit všechny transakce nejistoty. První krok lze provést kdykoli poté, co správce prostředků vytvoří relaci se správcem transakcí, ale po RecoveryComplete vyvolání (krok 2), krok 1 nelze provést znovu. Krok 2 lze opakovat bez dopadu výsledku transakcí více než jednou.