FIX: un verrou mortel se produit lorsque deux transactions essayez d'effectuer une opération DML sur une table qui contient une directive de verrouillage TABLOCK ou d'un indicateur de verrouillage XLOCK

IMPORTANT : Cet article est issu du système de traduction automatique mis au point par Microsoft (http://support.microsoft.com/gp/mtdetails). Un certain nombre d’articles obtenus par traduction automatique sont en effet mis à votre disposition en complément des articles traduits en langue française par des traducteurs professionnels. Cela vous permet d’avoir accès, dans votre propre langue, à l’ensemble des articles de la base de connaissances rédigés originellement en langue anglaise. Les articles traduits automatiquement ne sont pas toujours parfaits et peuvent comporter des erreurs de vocabulaire, de syntaxe ou de grammaire (probablement semblables aux erreurs que ferait une personne étrangère s’exprimant dans votre langue !). Néanmoins, mis à part ces imperfections, ces articles devraient suffire à vous orienter et à vous aider à résoudre votre problème. Microsoft s’efforce aussi continuellement de faire évoluer son système de traduction automatique.

La version anglaise de cet article est la suivante: 983516
Symptômes
Envisagez le scénario suivant dans Microsoft SQL Server Compact 3.5 :
  • Vous avez deux transactions d'isolation sérialisable.
  • Les deux transactions, essayez d'effectuer une opération DML (requête/DML, Data) sur la même table qui contient une directive de verrouillage TABLOCK ou un indicateur de verrouillage XLOCK.
Dans ce scénario, vous rencontrez un verrou mortel.
Cause
Ce problème se produit parce que les deux transactions attendent d'un autre XLOCK. Lorsque la requête obtient compilée, les transactions d'obtenir le verrou partagé sur la table et puis détient le verrou d'isolation sérialisable. Lorsque les deux transactions essayez d'effectuer une exécution, la requête sur la table qui contient un indicateur de verrouillage XLOCK, puis les deux transactions attendent d'un autre XLOCK. Par conséquent, un verrou mortel se produit.

RemarqueCe problème se produit également lorsque les deux transactions effectuent une opération DML sur la même table qui contient un indicateur de verrouillage TABLOCK.
Résolution

SQL Server Compact 3.5 Service Pack 2

Tout d'abord, le correctif de ce problème a été publié dans la deuxième mise à jour cumulative. Pour plus d'informations sur l'obtention de ce package de mise à jour cumulatives pour SQL Server 2008 R2, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
2289547Mise à jour cumulative 2 pour SQL Server Compact 3.5 Service Pack 2
Statut
Microsoft a confirmé qu'il s'agit d'un problème dans les produits Microsoft répertoriés dans la section «S'applique à».
Plus d'informations
Pour plus d'informations sur le verrou mortel, visitez le site Web MSDN (Microsoft Developer Network) suivant :Pour plus d'informations sur DML, visitez le site Web MSDN suivant :Pour plus d'informations sur la terminologie de mise à jour de logiciel, cliquez sur le numéro ci-dessous pour afficher l'article correspondant dans la base de connaissances Microsoft :
824684 de laDescription de la terminologie standard utilisée pour décrire les mises à jour de logiciel Microsoft

Avertissement : Cet article a été traduit automatiquement.

Propriétés

ID d'article : 983516 - Dernière mise à jour : 08/25/2010 16:08:00 - Révision : 1.0

Microsoft SQL Server Compact 3.5

  • kbqfe kbhotfixserver kbexpertiseadvanced kbsurveynew kbautohotfix kbmt KB983516 KbMtfr
Commentaires