FIX: Messaggio di errore quando si utilizza la sessione di evento esteso system_health per l'acquisizione di un grafico di deadlock in SQL Server 2008: "Msg 9436: analisi XML: la riga 54, carattere 12, tag di fine non corrisponde a tag di inizio"

Microsoft distribuisce le correzioni Microsoft SQL Server 2008 come un unico file scaricabile. Poiché le correzioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con il precedente 2008 di SQL Server.

Sintomi

Si consideri il seguente scenario. In un database di Microsoft SQL Server 2008, si verifica un deadlock. È quindi possibile utilizzare la sessione Extended evento system_health per acquisire il grafico di deadlock. In questo scenario, viene visualizzato il seguente messaggio di errore:
Msg 9436, livello 16, stato 1, riga 1

Analisi XML: la riga 54, carattere 12, tag di fine non corrisponde a tag di inizio
Ad esempio, si esegue la query seguente per esportare la destinazione buffer_ring dalla sessione system_health quando si verifica un deadlock:
select XEventData.XEvent.value('(data/value)[1]', 'varchar(max)') as DeadlockGraphFROM
(select CAST(target_data as xml) as TargetData
from sys.dm_xe_session_targets st
join sys.dm_xe_sessions s on s.address = st.event_session_address
where name = 'system_health') AS Data
CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent)
where XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report'

In questo esempio, la query restituisce il risultato corretto.

Tuttavia, è anche possibile eseguire la query seguente per eseguire il cast di questo grafico deadlock in formato XML:
select cast(XEventData.XEvent.value('(data/value)[1]', 'varchar(max)') as xml) as DeadlockGraphFROM
(select CAST(target_data as xml) as TargetData
from sys.dm_xe_session_targets st
join sys.dm_xe_sessions s on s.address = st.event_session_address
where name = 'system_health') AS Data
CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent)
where XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report'

In questo caso, si prevede di visualizzare il grafico di deadlock in formato XML. Anche se il grafico di deadlock viene visualizzato correttamente, dovrebbero comunque vedere XML valido contenuto dal report xml_deadlock_report. Tuttavia, viene visualizzato il seguente messaggio di errore:
Msg 9436, livello 16, stato 1, riga 1
Analisi XML: la riga 54, carattere 12, tag di fine non corrisponde a tag di inizio

Causa

Questo problema si verifica perché il tag di chiusura dell'elemento di elenco vittima ignora il percorso del codice che genera lo schema XML per il grafico di deadlock. Inoltre, il percorso del codice aggiunge un tag non necessario per l'elemento di blocco critico .

Risoluzione


La correzione di questo problema è stata rilasciata prima 6 aggiornamento cumulativo per SQL Server 2008 Service Pack 1. Per ulteriori informazioni su questo pacchetto di aggiornamento cumulativo, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:
977443 cumulativo aggiornamento 6 per SQL Server 2008 Service Pack 1
Nota: Poiché le versioni sono cumulative, ogni nuova versione di correzione contiene tutti gli hotfix e rilascio delle correzioni per tutte le correzioni fornite con il precedente 2008 di SQL Server. Si consiglia di considerare l'ipotesi di applicare la versione più recente contenente tale hotfix. Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
970365 versioni di SQL Server 2008 rilasciate dopo il rilascio di SQL Server 2008 Service Pack 1
Aggiornamenti rapidi di Microsoft SQL Server 2008 vengono creati per service pack specifici di SQL Server. È necessario applicare un hotfix di SQL Server 2008 Service Pack 1 a un'installazione di SQL Server 2008 Service Pack 1. Per impostazione predefinita, qualsiasi hotfix fornito in un service pack di SQL Server è incluso nel prossimo service pack di SQL Server.


SQL Server 2008 R2

Importante Se si esegue SQL Server 2008 R2, è necessario installare questa correzione.

La correzione di questo problema è stata rilasciata prima nell'aggiornamento cumulativo 1. Per ulteriori informazioni su come ottenere il pacchetto di aggiornamento cumulativo per SQL Server 2008 R2, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito:

981355 pacchetto di aggiornamento cumulativo 1 per SQL Server 2008 R2
Nota: Poiché le versioni sono cumulative, ogni nuova versione contiene tutte le correzioni rapide e rilascio delle correzioni per tutte le correzioni fornite con il precedente di SQL Server 2008 R2. Si consiglia di considerare l'ipotesi di applicare la versione più recente contenente tale hotfix. Per ulteriori informazioni, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:

981356 di SQL Server 2008 R2 versioni rilasciate dopo il rilascio di SQL Server 2008 R2

Stato

Microsoft ha confermato che questo è un problema dei prodotti Microsoft elencati nella sezione "Si applica a".

Riferimenti

Per informazioni sul modello di manutenzione incrementale per SQL Server, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

935897 un modello di manutenzione incrementale è disponibile dal team di SQL Server per offrire gli hotfix per i problemi segnalati


Per ulteriori informazioni sullo schema di denominazione per gli aggiornamenti di SQL Server, fare clic sul numero riportato di seguito per visualizzare l'articolo della Microsoft Knowledge Base riportato di seguito:

822499 Nuovo schema di denominazione per i pacchetti di aggiornamento software di Microsoft SQL Server

Per ulteriori informazioni sulla terminologia degli aggiornamenti software, fare clic sul seguente numero di articolo per visualizzare l'articolo della Microsoft Knowledge Base:
824684 descrizione della terminologia standard utilizzata per descrivere gli aggiornamenti software Microsoft
Proprietà

ID articolo: 978629 - Ultima revisione: 31 gen 2017 - Revisione: 1

Feedback