Sdílet prostřednictvím


IEnlistmentNotification.InDoubt(Enlistment) Metoda

Definice

Upozorní zařazený objekt, že stav transakce je v pochybnosti.

public:
 void InDoubt(System::Transactions::Enlistment ^ enlistment);
public void InDoubt (System.Transactions.Enlistment enlistment);
abstract member InDoubt : System.Transactions.Enlistment -> unit
Public Sub InDoubt (enlistment As Enlistment)

Parametry

enlistment
Enlistment

Objekt Enlistment slouží k odeslání odpovědi na správce transakcí.

Poznámky

Tato metoda je volána pro nestálé prostředky, když správce transakcí vyvolala jednu operaci potvrzení fáze do jednoho trvalého prostředku a připojení k trvalému prostředku bylo ztraceno před získáním výsledku transakce. V tomto okamžiku nelze bezpečně určit výsledek transakce.

Vzhledem k tomu InDoubt , že se považuje za konečný stav transakce, neměli byste volat Commit nebo Rollback po volání InDoubt.

Poznámka

Implementace této metody pro nestálý prostředek by měla u ovlivněných dat provádět jakoukoli operaci obnovení nebo zadržení, které rozumí. Po dokončení práce musí také volat metodu Done pro parametr on enlistment .

Pokud správce prostředků obsahuje trvale, ale nereaguje voláním Done metody, správce transakcí si není jistý, zda správce prostředků přijal InDoubt volání. Jako takový správce transakcí stále čeká na odpověď a udržuje informace relevantní pro tuto transakci. Pokud Done se nikdy nevolá, tato informace se uchovává po neomezenou dobu v paměti nebo v systémovém prostředku. To vede k tomu, že prostředky není možné uvolnit. V případě distribuované transakce by to mohlo nakonec zaplnit protokol MSDTC, který zastaví proces MSDTC. V případě transakce spravované nástrojem System.Transactionsto vede k postupnému a neustálému zvyšování spotřeby paměti procesem správce prostředků. Proto je velmi důležité, abyste volali metodu Done , jakmile správce prostředků dokončí práci na přípravě.

Platí pro