MSSQL sur Linux : XML : un dépassement de la capacité de la pile FOR XML EXPLICIT s'est produit. Les relations circulaires des balises parentes ne sont pas autorisées

Microsoft.SQLServer.Linux.EventRule.DBEngine.XML___FOR_XML_EXPLICIT_stack_overflow_occurred._Circular_parent_tag_relationships_are_not_allowed_1_5_Rule (Rule)

Le code XML n'est pas correctement structuré car le niveau d'imbrication des balises d'élément a dépassé le nombre de colonnes de la table, une ou plusieurs balises présentent des références circulaires, ou les deux. Pour plus d'informations sur FOR XML EXPLICIT, voir la rubrique « Utilisation du mode EXPLICIT » de la documentation en ligne.

Knowledge Base article:

Résumé

Le code XML n'est pas correctement structuré car le niveau d'imbrication des balises d'élément a dépassé le nombre de colonnes de la table, une ou plusieurs balises présentent des références circulaires, ou les deux. Pour plus d'informations sur FOR XML EXPLICIT, voir la rubrique « Utilisation du mode EXPLICIT » de la documentation en ligne.

Solutions

Lorsque vous spécifiez le mode EXPLICIT, vous devez veiller à ce que le code XML généré soit correctement constitué et valide (dans le cas d'un schéma XML-DATA). N'incluez pas de balises d'élément présentant des références circulaires dans la hiérarchie.

Paramètres remplaçables

Nom

Description

Valeur par défaut

Activé

Active ou désactive le flux de travail.

Oui

Intervalle (en secondes)

Intervalle régulier (en secondes) auquel exécuter le flux de travail.

300

Priorité

Définit la priorité de l'alerte.

1

Severité

Définit la gravité de l'alerte.

2

Heure de synchronisation

Heure de synchronisation

 

Délai d'expiration (secondes)

Spécifie la durée pendant laquelle le flux de travail est autorisé à s'exécuter avant d'être fermé et marqué comme ayant échoué.

200

Délai d’attente pour la connexion de base de données (secondes)

Le workflow échoue et enregistre un événement s’il ne peut pas accéder à la base de données pendant la période spécifiée.

15

Element properties:

TargetMicrosoft.SQLServer.Linux.DBEngine
CategoryEventCollection
EnabledTrue
Alert GenerateTrue
Alert SeverityError
Alert PriorityNormal
RemotableTrue
Alert Message
MSSQL sur Linux : XML : un dépassement de la capacité de la pile FOR XML EXPLICIT s'est produit. Les relations circulaires des balises parentes ne sont pas autorisées
{0}
CommentMom2017ID='{869ED28C-840A-4EA0-9B39-4CFFDB8E0646}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}

Member Modules:

ID Module Type TypeId RunAs 
_F6DA1507_12AF_11D3_AB21_00A0C98620CE_ DataSource Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered Default
GenerateAlert WriteAction System.Health.GenerateAlert Default

Source Code:

<Rule ID="Microsoft.SQLServer.Linux.EventRule.DBEngine.XML___FOR_XML_EXPLICIT_stack_overflow_occurred._Circular_parent_tag_relationships_are_not_allowed_1_5_Rule" Target="SqlDiscL!Microsoft.SQLServer.Linux.DBEngine" Enabled="true" ConfirmDelivery="true" Remotable="true" Comment="Mom2017ID='{869ED28C-840A-4EA0-9B39-4CFFDB8E0646}';MOM2017GroupID={467ECC75-C5DA-42BD-955C-A73BBB51AF74}">
<Category>EventCollection</Category>
<DataSources>
<DataSource ID="_F6DA1507_12AF_11D3_AB21_00A0C98620CE_" Comment="{F6DA1507-12AF-11D3-AB21-00A0C98620CE}" TypeID="Microsoft.SQLServer.Linux.DataSource.EventCollectionFiltered">
<MachineName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</MachineName>
<NetbiosComputerName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/NetbiosComputerName$</NetbiosComputerName>
<InstanceName>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</InstanceName>
<ConnectionString>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/ConnectionString$</ConnectionString>
<InstanceVersion>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Version$</InstanceVersion>
<InstanceEdition>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/Edition$</InstanceEdition>
<SqlExecTimeoutSeconds>60</SqlExecTimeoutSeconds>
<SqlTimeoutSeconds>15</SqlTimeoutSeconds>
<TimeoutSeconds>200</TimeoutSeconds>
<IntervalSeconds>300</IntervalSeconds>
<SyncTime/>
<EventDisplayNumber>6805</EventDisplayNumber>
</DataSource>
</DataSources>
<WriteActions>
<WriteAction ID="GenerateAlert" TypeID="Health!System.Health.GenerateAlert">
<Priority>1</Priority>
<Severity>2</Severity>
<AlertMessageId>$MPElement[Name="Microsoft.SQLServer.Linux.EventRule.DBEngine.XML___FOR_XML_EXPLICIT_stack_overflow_occurred._Circular_parent_tag_relationships_are_not_allowed_1_5_Rule.AlertMessage"]$</AlertMessageId>
<AlertParameters>
<AlertParameter1>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/MachineName$</AlertParameter1>
<AlertParameter2>$Target/Property[Type="SqlCoreLib!Microsoft.SQLServer.Core.DBEngine"]/InstanceName$</AlertParameter2>
<AlertParameter3>Event ID: $Data/Property[@Name='EventID']$. $Data/Property[@Name='Message']$</AlertParameter3>
</AlertParameters>
<Suppression>
<SuppressionValue/>
</Suppression>
</WriteAction>
</WriteActions>
</Rule>