Oprava: Blokování problému dochází při spuštění Agent sloučit SQL Server 2005

Příznaky

V Microsoft SQL Server 2005 můžete konfigurovat publikace hromadné korespondence. Při spuštění Agent sloučit k blokování problému dochází. Při sledování blokování problému, zjistíte následující chování:
  • Ve výstupu blokování skriptu, který jste vytvořili ke sledování tohoto problému jsou blokovány některé podprocesů, spuštěných replikace uložené procedury. Například můžete si všimnout, že blokované vlákna jsou spuštěny následující replikace uložené postupy:
    • Sp_MSinsertgenhistory uložená procedura
    • Sp_MSgetmakegenerationappl uložená procedura
    • Sp_MSenumgenerations uložená procedura
    Poznámka: Můžete také najít podprocesů, které jsou blokovány pomocí sledování aktivity v SQL Server Management Studio.

    Další informace o tom, jak sledovat problém vytvořením blokování skriptu klepněte na následující číslo článku databáze Microsoft Knowledge Base:

    Jak 271509 sledování blokování SQL Server 2005 a SQL Server 2000

  • V serveru SQL trasování transakce, který je otevřen pomocí sp_mergemetadataretentioncleanup uložené procedury pravděpodobně stále běží, přestože byla dokončena uložené procedury, která volá sp_mergemetadataretentioncleanup uložené procedury. Navíc můžete najít události upozornění v transakci. Uložené procedury, která volá sp_mergemetadataretentioncleanup uložené procedury může být jeden z následujících uložených procedur:
    • Sp_MSinsertgenhistory uložená procedura
    • Sp_MSgetmakegenerationappl uložená procedura
    • Sp_MSenumgenerations uložená procedura.
    Může například vyhledat záznamy, které se podobají následující trasování serveru SQL Server:
    EventClass
    TextData
    ObjectName
    DBID
    TransactionID
    HostName
    ClientProcessIDApplicationName
    SPID
    RPC:Completed
    Exec sp_MSenumgenerations 1051201 '9B9CC268-A43A-4736-9481-0B99227C3BF0' 1
    sp_Msenumgenerations
    5
    525491216
    Název hostitele1896
    ApplicationName69
    EventClass
    TextData
    ObjectName
    DBID
    TransactionID
    HostName
    ClientProcessIDApplicationName
    SPID
    SP:StmtCompletedzahájit transakcisp_mergemetadataretentioncleanup5
    525491216
    Název hostitele1896
    ApplicationName69
    SP:StmtStartingVyberte hodnotu NULL z dbo. MSmerge_contents s (TABLOCK HOLDLOCK) kde 1 = 2sp_mergemetadataretentioncleanup5
    525491216
    Název hostitele1896
    ApplicationName69
    EventClass
    TextData
    ObjectName
    DBID
    TransactionID
    HostName
    ClientProcessIDApplicationName
    SPID
    Pozornost5
    525491216
    Název hostitele1896
    ApplicationName69

Příčina

K tomuto problému dochází, protože proces vyčištění metadat korespondence nenastaví možnost XACT_ABORT on pro transakci. Když je spuštěna sp_mergemetadataretentioncleanup uložené procedury, pokud neočekávané výjimce jako nastane problém sítě, transakce není vrácena zpět. Když transakce není vrácena zpět, uzamčení prostředků, které drží transakce není uvolněna.

Řešení

Informace o aktualizaci Service pack

Tento problém vyřešíte pomocí nejnovější aktualizace service pack pro SQL Server 2005. Další informace získáte v následujícím článku znalostní báze Microsoft Knowledge Base:
913089 jak získat nejnovější aktualizaci service pack pro SQL Server 2005

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části "Platí pro". Tento problém byl poprvé opraven v aktualizaci SQL Server 2005 Service Pack 3.

Další informace

Pro další informace o terminologii používané v aktualizacích softwaru, klepněte na následující číslo článku k zobrazení článku v databázi Microsoft Knowledge Base:
824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft
Vlastnosti

ID článku: 959023 - Poslední kontrola: 14. 1. 2017 - Revize: 1

Váš názor