Numéro d'article: 118552 - Dernière mise à jour: jeudi 22 février 2007 - Version: 5.3 Description de la gestion des conditions de blocage dans SQL Server
RésuméUn blocage est une condition où processus 2 (ou plus) tentent d'accéder à une ressource de l'autre détient un verrou. Dans la mesure où chaque processus a une demande pour l'autre ressource, aucun ne peut être effectuée. Lorsqu'un blocage est détecté, SQL Server annule la transaction qui a le moins de temps de traitement et retourne message d'erreur 1205 à l'application. Message d'erreur 1205 termine le lot en cours et restaure la transaction en cours. Plus d'informationsDans certains cas, une condition de blocage peut provoquer une commande de DB-Library (DB-lib) (par exemple, dbsqlexec, dbsqlok ou dbresults) renvoi de FAIL. Il incombe toujours du programme pour vérifier les codes de retour à partir de chaque commande de DB-lib. Si FAIL est renvoyé par une de ces commandes de DB-lib, le programme doit annuler le traitement par lots et pas tenter de continuer. Dans certains cas, il est possible de poursuivre l'exécution des commandes suivantes dans le lot. Cependant, étant donné qu'une situation de blocage est survenue et que la commande qui a provoqué son a été restaurée, commandes ultérieure dans le lot va probablement échouer avec une erreur plus grave, tel qu'un objet introuvable. Dans d'autres cas, une condition de blocage ne provoquera pas d'une commande de DB-lib renvoi de FAIL. Pour gérer cette condition, le programme doit rechercher le message de 1205 dans le Gestionnaire de messages, utilisez la fonction dbsetuserdata pour communiquer cela à votre application (un exemple peut être trouvé dans le chapitre 4 «DB-Library fonctions» dans SQL Server "Référence du programmeur pour C» sous dbsetuserdata). Le programme doit ensuite vérifier pour l'indicateur de blocage après chaque appel de DB-Library et annuler le traitement par lots si un blocage est détecté. Il semble inutile d'annuler un traitement par lots après avoir reçu un message de blocage 1205, il est nécessaire car le serveur ne sont pas toujours abandonne le lot dans une situation de blocage. Si le traitement par lots n'est pas annulé, toute tentative pour soumettre un nouveau lot peut entraîner une erreur DB-Library 10038 «Résultats en attente». Vous trouverez une description de l'interblocage et un exemple de comment détecter une condition de blocage dans «L'annexe E optimisation cohérence et simultanéité» dans le SQL Server pour Windows NT «Guide de référence du programmeur pour C». Les informations contenues dans cet article s'appliquent au(x) produit(s) suivant(s):
Traduction automatiqueIMPORTANT : 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: 118552
(http://support.microsoft.com/kb/118552/en-us/
)
L'INFORMATION CONTENUE DANS CE DOCUMENT EST FOURNIE PAR MICROSOFT SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. L'UTILISATEUR ASSUME LE RISQUE DE L'UTILISATION DU CONTENU DE CE DOCUMENT. CE DOCUMENT NE PEUT ETRE REVENDU OU CEDE EN ECHANGE D'UN QUELCONQUE PROFIT. | Autres ressources Autres sites d'aide
CommunautésObtenir de l'aideTraductions disponibles
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Retour au début
