MSSQL 2014 : XML : impossible de créer le document XML car la mémoire du serveur est faible. Libérez des documents XML à l'aide de sp_xml_removedocument

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)

Lorsque vous exécutez sp_xml_preparedocument, un document XML analysé est stocké dans le cache interne de SQL Server 2000. L'analyseur MSXML utilise jusqu'à un huitième de la mémoire totale disponible pour SQL Server. Il n'y a pas assez de mémoire dans la portion de cache allouée à MSXML pour ouvrir le document spécifié dans l'instruction sp_xml_preparedocument. Cela peut provenir du fait que le document spécifié est très volumineux ou que les documents déjà présents dans l'espace mémoire ne laissent pas suffisamment de place pour le nouveau document.

Knowledge Base article:

Résumé

Lorsque vous exécutez sp_xml_preparedocument, un document XML analysé est stocké dans le cache interne de SQL Server 2000. L’analyseur MSXML utilise jusqu’à un huitième de la mémoire totale disponible pour SQL Server. Il n’y a pas assez de mémoire dans la portion de cache allouée à MSXML pour ouvrir le document spécifié dans l’instruction sp_xml_preparedocument. Cela peut provenir du fait que le document spécifié est très volumineux ou que les documents déjà présents dans l’espace mémoire ne laissent pas suffisamment de place pour le nouveau document.

Pour plus d'informations sur l'analyse de documents XML, voir « sp_xml_preparedocument » et « sp_xml_removedocument » dans la documentation en ligne.

Solutions

Exécutez sp_xml_removedocument pour supprimer des documents de la mémoire. Vérifiez que votre code appelle systématiquement sp_xml_removedocument lorsque vous avez terminé le traitement d’un document. Dans votre code, tenez compte du fait qu’une connexion ou transaction peut être interrompue entre les appels sp_xml_preparedocument et sp_xml_removedocument. Pour ce faire, vous pouvez stocker dans une table des descripteurs de documents ouverts où vous pouvez les référencer en cas d’interruption d’un lot d’instructions.

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le flux de travail.

Oui

Priorité

Définit la priorité de l'alerte.

1

Severité

Définit la gravité de l'alerte.

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 : impossible de créer le document XML car la mémoire du serveur est faible. Libérez des documents XML à l'aide de sp_xml_removedocument
{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>