Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
En resurshanterare underlättar lösningen av beständiga registreringar i en transaktion genom att omregistrera transaktionsdeltagaren efter ett resursfel.
Återställningsprocessen
Om du vill registrera en resurs som beskrivs av en implementering av IEnlistmentNotification-gränssnittet som senare kan vara berättigad till återställning bör du anropa EnlistDurable-metoden. Dessutom måste du ange EnlistDurable metoden med en resource manager-identifierare (a Guid) som används för att konsekvent märka deltagaren i transaktionen i händelse av ett resursfel. Därför bör Guid som anges till det första Enlist-anropet vara identiskt med parametern resourceManagerIdentifier i anropet vid återställning Reenlist. Annars kastas TransactionException. Mer information om varaktiga registreringar finns i Registrera resurser som deltagare i en transaktion.
I förberedelsefasen (fas 1) i 2PC-protokollet, när din implementering av en beständig resurshanterare tar emot Prepare meddelandet, bör den logga sin beredskapslogg under den här fasen. Anteckningen ska innehålla all information som är nödvändig för att slutföra transaktionen vid godkännandet. Förberedelsenedskrivningen kan senare nås under återställningen genom att hämta egenskapen hos RecoveryInformation-callback-funktionen. Loggning av poster behöver inte utföras i Prepare-metoden eftersom RM kan göra detta på en arbetstråd.
Återställningsprocessen består av följande två steg:
Steg 1 - Återinträda
Resurshanteraren undersöker förberedelseinformationsposten för varje lista som är osäker. Detta görs genom att undersöka egenskapen för RecoveryInformation-återanropetPreparingEnlistment, som skickas till resurshanteraren i Prepare-meddelandet under fas 1.
För varje sådan registrering som den undersöker, anropar den transaktionshanteraren med Reenlist. Den här metoden skickar vidare en unik Guid som identifierar resurshanteraren, samt listans information i en bytematris. Ett nytt Enlistment objekt returneras. Om omlistningen misslyckas med ett undantag måste resurshanteraren försöka igen vid ett senare tillfälle.
Du bör bara anropa Reenlist metoden när en resurshanterare startar om efter ett fel. Dessutom bör du bara återregistrera olösta transaktioner som loggats av en resurshanterare under förberedelsefasen av en tvåfascommit. Alla försök att anropa den här metoden vid ogiltiga tidpunkter kan ge felaktiga resultat.
När en deltagare återlistas med den här metoden anropas fas 2-metoderna IEnlistmentNotification för som motsvarar transaktionens utfall (dvs. Commit , Rollback eller InDoubt ) efter behov.
Steg 2 – Slutföra återställningen
När alla omlistningar är klara, anropar resurshanteraren metoden RecoveryComplete. Den här metoden slutför återställningen och informerar transaktionshanteraren om att resurshanteraren inte har fler osäkra transaktioner. På så sätt garanterar resurshanteraren att den inte anropar Reenlist metoden igen.
En resurshanterare krävs inte för att lösa alla osäkra transaktioner innan du registrerar dig för nya transaktioner. Det första steget kan utföras när som helst efter att resurshanteraren har upprättat en relation med transaktionshanteraren, men när RecoveryComplete har anropats (steg 2), kan steg 1 inte utföras igen. Steg 2 kan upprepas flera gånger utan att påverka resultatet av transaktioner.