IEnlistmentNotification.InDoubt(Enlistment) Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Meddelar ett registrerat objekt att statusen för en transaktion är osäker.
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)
Parametrar
- enlistment
- Enlistment
Ett Enlistment objekt som används för att skicka ett svar till transaktionshanteraren.
Kommentarer
Den här metoden anropas för flyktiga resurser när transaktionshanteraren har anropat en enda fasincheckningsåtgärd till en enda varaktig resurs och sedan anslutningen till den varaktiga resursen gick förlorad innan transaktionsresultatet hämtades. Då kan inte transaktionsresultatet fastställas på ett säkert sätt.
Eftersom InDoubt anses vara ett slutligt tillstånd för en transaktion bör du inte anropa Commit eller Rollback efter att ha anropat InDoubt.
Note
Din implementering av den här metoden för den flyktiga resursen bör utföra den återställnings- eller inneslutningsåtgärd som den förstår på de berörda data. Den måste också anropa Done metoden på parametern enlistment när den har slutfört sitt arbete.
Om resurshanteraren har registrerat sig på rätt sätt, men inte svarar med anropande Done metod, är transaktionshanteraren osäker på att resurshanteraren har tagit emot anropet InDoubt . Därför väntar transaktionshanteraren på ett svar och underhåller information som är relevant för den här transaktionen. Om Done det aldrig anropas sparas den här informationen på obestämd tid i minnet eller i en systemomfattande resurs. Detta resulterar i att resurser inte kan frigöras. När det gäller en distribuerad transaktion kan detta så småningom fylla MSDTC-loggen, vilket stoppar MSDTC-processen. När det gäller en transaktion som hanteras av System.Transactionsresulterar detta i en gradvis och kontinuerlig ökning av minnesförbrukningen för resurshanterarens process. Därför är det viktigt att du anropar Done metoden när resurshanteraren är klar med ditt förberedelsearbete.