Sdílet prostřednictvím


Implementace správce prostředků

Každý prostředek, který používá v transakci spravuje správce prostředků, jejichž akce jsou koordinovaný správcem transakcí. Správci prostředků pracují ve spolupráci se správcem transakcí k poskytování aplikací s zárukou atomicitu a izolaci. Microsoft SQL Server, fronty zpráv trvalý, tabulky hodnot hash v paměti jsou všechny příklady správci prostředků.

Správce prostředků spravuje trvalé nebo přechodné data. Životnost (nebo naopak nestálosti) materiálu manager odkazuje na tom, zda správce prostředků podporuje obnovení po selhání. Pokud správce prostředků podporuje obnovení po selhání, přenese data do trvalého úložiště během fáze 1 (připravit) tak, pokud správce prostředků nebude fungovat, můžete zařadit do transakce při obnovení, znovu a správné činnostem podle oznámení obdržená z správce transakcí. Obecně platí správci těkavých prostředků spravovat těkavých prostředků, jako jsou například struktury dat v paměti (například v paměti zpracováván jako transakce hashtable) a správci trvalý prostředků spravovat prostředky, které mají více trvalé záložní úložiště (například databáze jehož záložní úložiště je disku).

Chcete-li, aby zdroj k účasti v transakci musí zařadit do transakce. Třída Transaction definuje sadu metod, jejichž názvy začínají enlist, které poskytují tuto funkci. Různé metody zařazení odpovídají různým typům zařazení, které může mít správce prostředků. Konkrétně používají EnlistVolatile metody pro těkavých materiály a EnlistDurable metody pro trvalý zdroje. Pro jednoduchost, jakmile se rozhodnete, zda se má použít EnlistDurable nebo EnlistVolatile metoda založená na podporu své prostředků životnost, by měl zařazení materiálu k účasti na dvě fáze potvrzení (2PC) implementací IEnlistmentNotification rozhraní pro váš správce prostředků. Další informace o 2PC naleznete v tématu Potvrzení transakce v jednofázové a vícefázové.

Pomocí zapsání správce prostředků zajišťuje, že ji zpětná volání získá ze Správce transakcí při potvrzení nebo přerušení transakce. Existuje jedna instance IEnlistmentNotification za zařazení. Obvykle je jeden zařazení na transakci, ale můžete zvolit správce prostředků k zařazení vícekrát v rámci jedné transakce.

Po zařazení správce prostředků reaguje na požadavky transakci. Správce prostředků trvalý ukládá dostatek informací, aby mohla vrátit zpět nebo znovu provést transakci práci na prostředky, že spravuje. Existuje mnoho způsobů, jak provést; uchování verzí dat nebo udržování protokolu změn jsou dvě společné techniky.

Když aplikace potvrdí transakce, správce transakcí spustí protokol dvoufázového potvrzení. Správce transakcí žádá nejprve každého správce prostředků zařazených, pokud je připraven k potvrzení transakce. Správce prostředků musí přípravu k potvrzení akce – ji připravíte sám o potvrzení nebo přerušení transakce.

Během fáze Příprava správce prostředků trvalý zaznamenává stará a nová data v úložišti stabilní tak, aby správce prostředků můžete obnovit jej i v případě selhání systému. Pokud správce prostředků můžete připravit, informuje správce transakcí jeho hlasovat na tom, zda se potvrzení nebo přerušení transakce. Pokud některý správce prostředků hlásí selhání při přípravě, správce transakcí odešle příkaz vrátit zpět do každého správce prostředků a určuje selhání potvrzení do aplikace.

Jakmile připraven, musí správce prostředků čekat potvrzení nebo zrušení zpětného volání z správce transakcí ve fázi 2. Obvykle celý protokol prepare a potvrzení dokončí za zlomek sekundy. Pokud dochází k selhání systému nebo komunikace, nemusí přijetí oznámení potvrzení nebo přerušení pro minut nebo hodin. Během této doby je správce prostředků za výsledek transakce. Nemůže určit, zda byla transakce potvrzena nebo bylo přerušeno. Správce prostředků v době vyskytne transakcí, zachová data změněná udržováním transakce zamknuta, a tím izolace tyto změny od všech ostatních transakcí.

Pokud se nezdaří správce prostředků, jsou všechny její provedení transakcí bylo přerušeno kromě těch, které jsou připravených nebo potvrzených před selhání. Po restartování správce prostředků trvalý rekonstruuje potvrzeny stav prostředků, které spravuje načtením Příprava informací, zapsán ve fázi prepare a potvrzení nebo přerušení tyto transakce odpovídajícím způsobem.

V souhrnu protokol dvoufázového potvrzení a správci prostředků spojují k provádění transakcí, atomické a trvalý.

Transaction Třída rovněž poskytuje EnlistPromotableSinglePhase metodu k zařazení možné zařazení pro jedné fáze (PSPE). To umožňuje trvalý prostředku manager (SV) pro hostování a "vlastní" transakce, který lze později eskalován jej lze spravovat pomocí příkaz MSDTC v případě potřeby. Další informace o tomto tématu naleznete v tématu Optimalizace pomocí jednofázového potvrzení a promotable jednofázové oznámení.

V tomto oddílu

Kroky, za kterými obvykle následuje správce prostředků, jsou popsané v následujících tématech.

Uvedení prostředků jako účastníků v transakci

Popisuje, jak lze prostředek trvalé nebo přechodné zařazení v transakci.

Potvrzení transakce v jedné fázi a více fázích

Popisuje, jak správce prostředků reaguje na potvrzení oznámení a připravit potvrzení.

Provedení obnovení

Popisuje, jak obnoví správce trvalý prostředků z selhání.

Úrovně důvěryhodnosti zabezpečení v přístupu k prostředkům

Popisuje, jak tři úrovně důvěryhodnosti pro System.Transactions omezit přístup k studijních materiálech, které System.Transactions zveřejňuje.

Optimalizace pomocí jednofázového potvrzení a možné zařazení jednofázového oznámení

Popisuje postupy pro optimalizaci implementace správce prostředků k dispozici.