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.2008.XML___XML_document_could_not_be_created_because_server_memory_is_low._Use_sp_xml_removedocument_to_release_XML_documents_1_5_Rule (Rule)

Knowledge Base article:

Zusammenfassung

Wenn Sie sp_xml_preparedocument ausführen, wird ein analysiertes XML-Dokument im internen Cache von SQL Server 2000 gespeichert. Der MSXML-Parser beansprucht bis zu einem Achtel des insgesamt für SQL Server verfügbaren Arbeitsspeichers. Der Teil des Caches, der für MSXML reserviert ist, bietet nicht genug Arbeitsspeicher, 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 von Dokumenten, die bereits in den Arbeitsspeicher geladen wurden, nicht mehr genug Speicher für das neue Dokument verfügbar ist.

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.

Überschreibbare Parameter

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.2008.DBEngine
CategoryEventCollection
EnabledTrue
Event_ID6624
Event Source$Target/Property[Type="SQL!Microsoft.SQLServer.DBEngine"]/ServiceName$
Alert GenerateTrue
Alert SeverityWarning
Alert PriorityNormal
RemotableTrue
Alert Message
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
CommentMom2008ID='{136A2E5E-A460-4FAE-8587-D72C945E89EB}';MOM2008GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

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

Source Code:

<Rule ID="Microsoft.SQLServer.2008.XML___XML_document_could_not_be_created_because_server_memory_is_low._Use_sp_xml_removedocument_to_release_XML_documents_1_5_Rule" Target="SQL2008Core!Microsoft.SQLServer.2008.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2008ID='{136A2E5E-A460-4FAE-8587-D72C945E89EB}';MOM2008GroupID={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" RunAs="SQL!Microsoft.SQLServer.SQLDefaultAccount">
<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="SQL!Microsoft.SQLServer.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.2008.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>