CORRECTIF : Vous recevez des messages d’erreur d’insuffisance de mémoire lorsque vous utilisez la réplication de fusion avec la synchronisation Web dans SQL Server 2005 ou SQL Server 2008

Symptômes

Vous utilisez la réplication de fusion SQL Server 2005 ou SQL Server 2008 réplication de fusion avec une synchronisation Web en fonction d’abonné. Une fuite de mémoire se produit après les synchronisations répétées, et vous pouvez recevoir les erreurs « mémoire insuffisante » après une période de temps. Ceci devient évident lorsque le processus hôte n’est pas redémarré pendant une longue période, comme lorsque l’Agent de fusion (Replmerg.exe) est utilisé avec l’option - commutateur continu ou lorsque le paramètre continu est spécifié dans le profil de l’Agent qui est appliquée à l’agent. Ce problème peut également affecter une application de RMO ou le service que vous avez développé qui exécute la synchronisation dans une boucle lorsque l’application s’exécute pendant plusieurs jours sans quitter.

Cause

Plusieurs objets internes sont l’objet de fuites lors de chaque synchronisation.

Résolution

SQL Server 2005 Service Pack 3


Le correctif de ce problème a été publié dans 6 de mise à jour Cumulative pour SQL Server 2005 Service Pack 3. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
974648 Cumulative mise à jour 6 pour SQL Server 2005 Service Pack 3
Remarque Les versions étant cumulatives, chaque nouvelle version de correctif contient tous les correctifs et correctifs de sécurité inclus dans la précédente de SQL Server 2005 version du correctif. Microsoft vous recommande l’application la plus récente version du correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
960598 le SQL Server 2005 versions publiées après la publication de SQL Server 2005 Service Pack 3.
Les correctifs Microsoft SQL Server 2005 sont créés pour les packs de service spécifiques de SQL Server. Vous devez appliquer un correctif SQL Server 2005 Service Pack 3 pour une installation de SQL Server 2005 Service Pack 3. Par défaut, tout correctif qui est fourni dans un service pack de SQL Server est inclus dans le prochain service pack de SQL Server.

La version de SQL Server 2008

Important Vous devez installer ce correctif si vous exécutez la version de SQL Server 2008.

Le correctif de ce problème a été publié dans la mise à jour cumulative 8. Pour plus d’informations sur l’obtention de ce package de mise à jour cumulative pour SQL Server 2008, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
975976 Cumulative update package 8 pour SQL Server 2008
Remarque Les versions étant cumulatives, chaque nouvelle version du correctif contient tous les correctifs et correctifs de sécurité inclus dans la précédente version du correctif de SQL Server 2008. Nous vous recommandons l’application la plus récente version du correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
956909 the SQL Server versions 2008 publiées après SQL Server 2008

SQL Server 2008 Service Pack 1

Important Vous devez installer ce correctif si vous exécutez SQL Server 2008 Service Pack 1.


Le correctif de ce problème a été publié dans les 5 mise à jour Cumulative pour SQL Server 2008 Service Pack 1. Pour plus d’informations sur ce package de mise à jour cumulative, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :
975977 Cumulative mise à jour 5 pour SQL Server 2008 Service Pack 1
Remarque Les versions étant cumulatives, chaque nouvelle version du correctif contient tous les correctifs et correctifs de sécurité inclus dans la précédente version du correctif de SQL Server 2008. Microsoft vous recommande l’application la plus récente version du correctif qui comprendra ce correctif. Pour plus d'informations, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
970365 the SQL Server versions 2008 publiées après SQL Server 2008 Service Pack 1
Les correctifs Microsoft SQL Server 2008 sont créés pour les packs de service spécifiques de SQL Server. Vous devez appliquer un correctif SQL Server 2008 Service Pack 1 dans une installation de SQL Server 2008 Service Pack 1. Par défaut, tout correctif qui est fourni dans un service pack de SQL Server est inclus dans le prochain service pack de SQL Server.

État

Microsoft a confirmé l'existence de ce problème dans les produits Microsoft répertoriés dans la section « S'applique à ».

Solution de contournement

Pour contourner ce problème, appliquez l’une des méthodes suivantes :

Méthode 1

Si vous utilisez un agent de fusion en mode continu, arrêter le processus de l’agent de fusion périodiquement et ouvrez-le à nouveau.

Par exemple, vous recevez les erreurs « mémoire insuffisante » après cinq jours, et que votre Agent de fusion est planifié en tant que tâche. Puis, vous planifiez une nouvelle tâche de SQL Server Agent d’appelez sp_stop_job suivie sp_start_job en spécifiant votre nom de travail de l’Agent de fusion, qui passe le processus affecté tous les cinq jours. Lorsque vous arrêtez le processus de l’Agent de fusion (Replmerg.exe), une fuite de mémoire dans l’espace mémoire du processus est libérée.

Pour plus d’informations sur l’utilisation de-commutateur continu sur l’Agent de fusion, consultez le site Web de Microsoft Developer Network (MSDN) à l’adresse suivante :

Méthode 2

Si vous utilisez l’agent de fusion à partir d’un projet, vous pouvez configurer manuelle logique de boucle à l’intérieur de la tâche plutôt que d’utiliser le paramètre en continu à l’aide des étapes supplémentaires. Au lieu de processus de l’agent de fusion d’un bouclage en interne pour toujours planifier en continu, l’Agent de fusion comme une étape de travail qui se répète régulièrement, par exemple une fois toutes les minutes. Le processus va s’arrêter entre deux tentatives, et cela libère la mémoire perdue.
Modifier l’Agent de fusion tâche de sorte que les opérations se répètent dans une boucle avec une pause entre se répète.
  1. Après l’étape [3] « Arrêt d’agent non enregistré, détecter » ajouter une nouvelle étape [4] nommé « Boucle de nouvelle tentative indéfinie ». Définir le type et la commande TSQL « waitfor delay ' 0 : 00:05' », ce délai TSQL fournira une pause de deuxième 5 que vous pouvez configurer sous la forme d’un intervalle d’interrogation de telle sorte que l’agent de fusion sera entre les exécutions, arrêtez-vous quelques secondes et ne s’exécute pas en permanence. Sous l’onglet Avancé spécifier « Sur Réussite Action » en tant que « Aller à l’étape d’Agent d’exécution [2] » et « Sur mesure d’échec » comme « Aller à l’étape [2], exécuter l’Agent ».
  2. Modifier l’étape [2] exécuter l’Agent pour garantir que la boucle étape [4] est atteint. Sous l’onglet Avancé de l’étape [2], définissez l’Action de succès sur, « passez à l’étape : [4] boucle de nouvelle tentative indéterminée » et définissez l’action de défaillance suite à « Aller à l’étape suivante ».
  3. Modifier l’étape [3] « Arrêt d’agent non enregistré détecter » afin de vous assurer que la boucle à l’étape [4] est atteint. Sous l’onglet Avancé de l’étape [3], définissez l’Action de succès sur « Aller à l’étape suivante ». Vous pouvez également décider si vous souhaitez que l’Action étape [3] sur l’échec à définir en tant que « Aller à l’étape suivante » ou « Quitter le travail rapportant un échec. » S’il est configuré pour quitter, il affichera l’échec de la tâche dans le moniteur de réplication et de la fonction Job Monitor. S’il est configuré en cas de panne pour accéder à la quatrième étape de la boucle, l’agent de fusion peut réexécuter indéfiniment, et les erreurs enregistrées indéfiniment.

Méthode 3

De la même façon si vous utilisez une application de RMO pour appeler la méthode MergeSynchronizationAgent.Synchronize() qui synchronise la base de données de l’abonné dans une boucle, arrêter et redémarrer le processus régulièrement afin de libérer de la mémoire qui est l’objet de fuites en raison de ce problème.
Pour plus d’informations sur cet objet et une méthode, consultez le site Web de Microsoft Developer Network (MSDN) à l’adresse suivante : http://msdn.microsoft.com/en-us/library/microsoft.sqlserver.replication.mergesynchronizationagent.synchronize(SQL.90).aspx

Références

Pour plus d’informations sur la façon d’utiliser la - commutateur continu sur l’Agent de fusion, visitez le site Web de Microsoft Developer Network (MSDN) à l’adresse suivante :
Pour plus d’informations sur la procédure stockée de sp_stop_job , visitez le site Web de Microsoft Developer Network (MSDN) à l’adresse suivante :
Pour plus d’informations sur la procédure stockée de sp_start_job , visitez le site Web de Microsoft Developer Network (MSDN) à l’adresse suivante :
Pour plus d’informations sur comment obtenir SQL Server 2005 Service Pack 3, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

913089 comment obtenir le dernier service pack pour SQL Server 2005

Pour plus d’informations sur les nouvelles fonctionnalités de SQL Server 2005 Service Pack 3 (SP3) et les améliorations dans SQL Server 2005 SP3, visitez le site Web de Microsoft à l’adresse suivante :Pour plus d’informations sur le schéma d’appellation des mises à jour de SQL Server, cliquez sur le numéro ci-dessous pour afficher l’article correspondant dans la Base de connaissances Microsoft :

Packages de mises à jour 822499 nouveau schéma d’appellation pour les logiciels de Microsoft SQL Server

Pour plus d'informations sur la terminologie de mise à jour logicielle, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la Base de connaissances Microsoft :
824684 Description de la terminologie standard utilisée pour décrire les mises à jour logicielles de Microsoft
Propriétés

ID d'article : 974660 - Dernière mise à jour : 13 janv. 2017 - Révision : 1

Commentaires