MSSQL 2014: XML: Das XML-Dokument konnte nicht erstellt werden, da auf dem Server nicht genügend Arbeitsspeicher zur Verfügung steht. Geben Sie XML-Dokumente mithilfe von sp_xml_removedocument frei

Microsoft.SQLServer.2014.XML___XML_document_could_not_be_created_because_server_memory_is_low._Use_sp_xml_removedocument_to_release_XML_documents_1_5_Rule (Rule)

Beim Ausführen von sp_xml_preparedocument wird ein analysiertes XML-Dokument im internen Cache von SQL Server 2000 gespeichert. Der MSXML-Parser belegt bis zu einem Achtel des insgesamt für SQL Server verfügbaren Arbeitsspeichers. Es ist nicht genügend Arbeitsspeicher in dem für MSXML zugewiesenen Cache vorhanden, um das in der Anweisung sp_xml_preparedocument angegebene Dokument zu öffnen. Dies kann daran liegen, dass das angegebene Dokument sehr groß ist oder dass aufgrund bereits vorhandener Dokument im Arbeitspeicherbereich nicht mehr genügend Platz für das neue Dokument zur Verfügung steht.

Knowledge Base article:

Zusammenfassung

Beim Ausführen von sp_xml_preparedocument wird ein analysiertes XML-Dokument im internen Cache von SQL Server 2000 gespeichert. Der MSXML-Parser belegt bis zu einem Achtel des insgesamt für SQL Server verfügbaren Arbeitsspeichers. Es ist nicht genügend Arbeitsspeicher in dem für MSXML zugewiesenen Cache vorhanden, um das in der Anweisung sp_xml_preparedocument angegebene Dokument zu öffnen. Dies kann daran kiegen, dass das angegebene Dokument sehr groß ist oder dass aufgrund bereits vorhandener Dokument im Arbeitspeicherbereich nicht mehr genügend Platz für das neue Dokument zur Verfügung steht.

Weitere Informationen zum Analysieren von XML-Dokumenten finden Sie in den Themen zu sp_xml_preparedocument und sp_xml_removedocument in der Onlinedokumentation.

Lösungen

Führen Sie sp_xml_removedocument aus, um Dokumente aus dem Arbeitsspeicher zu entfernen. Stellen Sie sicher, dass Ihr Code immer sp_xml_removedocument abruft, wenn die Verarbeitung eines Dokuments abgeschlossen wurde. Beim Code sollte immer die Möglichkeit einer Verbindungs- oder Transaktionsunterbrechung zwischen sp_xml_preparedocument-Aufrufen und sp_xml_removedocument-Aufrufen berücksichtigt sein. Hierzu müssen Sie offene Dokumenthandles in einer Tabelle speichern, in der Sie auf diese verweisen können, wenn ein Batch unterbrochen wird.

Parameter, die außer Kraft gesetzt werden können

Name

Beschreibung

Standardwert

Aktiviert

Aktiviert oder deaktiviert den Workflow.

Ja

Priorität

Definiert die Warnungspriorität.

1

Schweregrad

Definiert den Warnungsschweregrad.

1

Element properties:

TargetMicrosoft.SQLServer.2014.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID6624
Event Source$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL 2014: XML: Das XML-Dokument konnte nicht erstellt werden, da auf dem Server nicht genügend Arbeitsspeicher zur Verfügung steht. Geben Sie XML-Dokumente mithilfe von sp_xml_removedocument frei
{0}
Event LogApplication
CommentMom2014ID='{136A2E5E-A460-4FAE-8587-D72C945E89EB}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.Windows.EventProvider Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.2014.XML___XML_document_could_not_be_created_because_server_memory_is_low._Use_sp_xml_removedocument_to_release_XML_documents_1_5_Rule" Target="SQL2014Core!Microsoft.SQLServer.2014.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2014ID='{136A2E5E-A460-4FAE-8587-D72C945E89EB}';MOM2014GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Windows!Microsoft.Windows.EventProvider">
<ComputerName>$Target/Host/Property[Type="Windows!Microsoft.Windows.Computer"]/NetworkName$</ComputerName>
<LogName>Application</LogName>
<Expression>
<And>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>PublisherName</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>$Target/Property[Type="SQL2014Core!Microsoft.SQLServer.2014.DBEngine"]/ServiceName$</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
<Expression>
<SimpleExpression>
<ValueExpression>
<XPathQuery>EventDisplayNumber</XPathQuery>
</ValueExpression>
<Operator>Equal</Operator>
<ValueExpression>
<Value>6624</Value>
</ValueExpression>
</SimpleExpression>
</Expression>
</And>
</Expression>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="SystemHealth!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>1</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.2014.XML___XML_document_could_not_be_created_because_server_memory_is_low._Use_sp_xml_removedocument_to_release_XML_documents_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>Event ID: $Data/EventDisplayNumber$. $Data/EventDescription$</AlertParameter1>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>