FIX: Un problema di blocco si verifica quando si esegue l'agente di merge in SQL Server 2005

Il presente articolo è stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell’utente. Tuttavia, un articolo tradotto in modo automatico non è sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, più o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non è la sua. Microsoft non è responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell’utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.

Clicca qui per visualizzare la versione originale in inglese dell’articolo: 959023
Sintomi
In SQL Server 2005, è possibile configurare una pubblicazione di tipo merge. Quando si esegue l'agente di merge, si verifica un problema di blocco. Quando si esegue il monitoraggio il problema di blocco, è possibile trovare i seguenti comportamenti:
  • Nell'output dello script blocco creato per monitorare il problema, vengono bloccati alcuni thread che eseguono stored procedure di replica. Ad esempio, si noterà che i thread bloccati siano in esecuzione le seguenti procedure di replica archiviato:
    • La procedura sp_MSinsertgenhistory archiviati
    • La procedura sp_MSgetmakegenerationappl archiviati
    • La procedura sp_MSenumgenerations archiviati
    Nota È inoltre possibile trovare i thread vengono bloccati dal Monitor attività in SQL Server Management Studio.

    Per ulteriori informazioni su come monitorare un problema creando uno script di blocco, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
    271509Come monitorare i blocchi in SQL Server 2005 e in SQL Server 2000
  • Una traccia di SQL Server, una transazione che viene aperto tramite la procedura sp_mergemetadataretentioncleanup memorizzati potrebbe ancora sia in esecuzione anche se la stored procedure che chiama la routine sp_mergemetadataretentioncleanup memorizzati è stata completata. Inoltre, potrebbe essere un evento di attenzione nella transazione. La stored procedure che chiama la routine sp_mergemetadataretentioncleanup memorizzati potrebbe essere una delle seguenti stored procedure seguenti:
    • La procedura sp_MSinsertgenhistory archiviati
    • La procedura sp_MSgetmakegenerationappl archiviati
    • Lo sp_MSenumgenerations stored procedure.
    Ad esempio, si potrebbe trovare record analoghi ai seguenti nella traccia di SQL Server:
    classe di evento TextData nomeoggetto DBID TransactionID HostName a ClientProcessID ApplicationName SPID
    RPC: Completed Exec sp_MSenumgenerations 1051201, '9B9CC268-A43A-4736-9481-0B99227C3BF0", 1 sp_Msenumgenerations 5 525491216 HostName1896 ApplicationName69
    classe di evento TextData nomeoggetto DBID TransactionID HostName a ClientProcessID ApplicationName SPID
    SP: StmtCompletedavviare la transazionesp_mergemetadataretentioncleanup5 525491216 HostName1896 ApplicationName69
    SP: StmtStarting Selezionare dove NULL dbo.MSmerge_contents con (TABLOCK HOLDLOCK) 1 = 2sp_mergemetadataretentioncleanup5 525491216 HostName1896 ApplicationName69
    classe di evento TextData nomeoggetto DBID TransactionID HostName a ClientProcessID ApplicationName SPID
    Attenzione5 525491216 HostName1896 ApplicationName69
Cause
Questo problema si verifica perché il processo di pulitura dei metadati di merge non imposta l'opzione XACT_ABORT su ON per la transazione. Quando la procedura sp_mergemetadataretentioncleanup memorizzato è in esecuzione, se un'eccezione imprevista, ad esempio si verifica un problema di rete, la transazione non viene ripristinata. Quando la transazione non viene ripristinata, le risorse di blocco vengono mantenuti attivi dalla transazione non viene rilasciato.
Risoluzione

Informazioni sul Service pack

Per risolvere il problema, ottenere il service pack più recente per SQL Server 2005. Per ulteriori informazioni, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
913089Come ottenere il service pack più recente per SQL Server 2005
Status
Microsoft ha confermato che questo problema riguarda i prodotti sono elencati nella sezione "Si applica a". Questo problema è stato innanzitutto corretto in SQL Server 2005 Service Pack 3.
Informazioni
Per ulteriori informazioni sulla terminologia di aggiornamento software, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
824684Descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft

Avviso: questo articolo è stato tradotto automaticamente

Proprietà

ID articolo: 959023 - Ultima revisione: 12/16/2008 01:06:07 - Revisione: 1.0

Microsoft SQL Server 2005 Standard Edition, Microsoft SQL Server 2005 Developer Edition, Microsoft SQL Server 2005 Enterprise Edition, Microsoft SQL Server 2005 Standard X64 Edition, Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems, Microsoft SQL Server 2005 Enterprise X64 Edition, Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems, Microsoft SQL Server 2005 Workgroup Edition

  • kbmt kbsql2005repl kbexpertiseadvanced kbtshoot kbfix kbbug KB959023 KbMtit
Feedback