Informations sur les blocages SQL
Un « SQL Deadlock » se produit dans Microsoft Dynamics 365 Business Central lorsque deux processus ou plus attendent des ressources qui sont verrouillées l’une par l’autre. Dans cette situation, aucune des transactions concernées ne peut avoir lieu car chacune d’entre elles détient une ressource dont l’autre a besoin. Pour résoudre le conflit, le serveur SQL sélectionne automatiquement un processus comme victime de l’impasse et y met fin en annulant la transaction. L’autre processus est alors en mesure de poursuivre les changements requis.
Impact des blocages SQL
- Il n’y a pas de perte de données, car le code Dynamics AL bien conçu et les transactions SQL qui en résultent sont conçus pour revenir en arrière proprement en cas de défaillance.
- Pour les utilisateurs finaux, par exemple lorsqu’ils utilisent le client Web, un blocage se traduit par un message d’erreur. L’utilisateur doit alors répéter l’action.
Éviter les blocages
- Un ordre de verrouillage cohérent entre les processus permet d’éviter la plupart des blocages. Cela doit être défini et appliqué dans la logique de l’application.
- Il n’est pas toujours possible d’éviter complètement ce problème, en particulier lorsque des considérations de performance imposent de varier les séquences de verrouillage.
Pertinence de l’application mobile Anvaigo
- Les blocages SQL ne sont pas critiques dans l’application mobile Anvaigo car les mécanismes de relance automatique garantissent que les transactions échouées sont retraitées.
- La victime de l’impasse n ‘a pas d’impact négatif sur le traitement des données ou sur l’expérience de l’utilisateur, car ce dernier ne verra pas de nouvelles tentatives.
- Dans ce contexte, il n’est pas toujours possible d’éviter un blocage, car seul l’ordre de verrouillage des ressources détermine si une situation de blocage se produit.
- Toutefois, cela ne pose pas de problème car le système relance automatiquement le traitement des données entrantes, en veillant à ce qu’il soit mené à bien.
