Informatie over SQL Deadlocks
Een “SQL Deadlock” treedt op in Microsoft Dynamics 365 Business Central wanneer twee of meer processen wachten op bronnen die door elkaar zijn vergrendeld. In deze situatie kan geen van de betrokken transacties doorgaan omdat de een een bron vasthoudt die de ander nodig heeft. Om het conflict op te lossen, selecteert de SQL-server automatisch één proces als slachtoffer van de deadlock en beëindigt dit door de transactie terug te rollen. Het andere proces kan dan doorgaan met de vereiste wijzigingen.
Invloed van SQL Deadlocks
- Er treedt geen gegevensverlies op, omdat goed ontworpen Dynamics AL-code en de resulterende SQL-transacties ontworpen zijn om netjes terug te rollen in geval van storing.
- Voor eindgebruikers, bijvoorbeeld bij gebruik van de Web Client, zal een impasse resulteren in een foutmelding. De gebruiker moet de actie dan herhalen.
Deadlocks vermijden
- Een consistente blokkeringsvolgorde tussen processen kan de meeste deadlocks voorkomen. Dit moet worden gedefinieerd en afgedwongen in de applicatielogica.
- Volledige vermijding is niet altijd haalbaar, vooral als prestatieoverwegingen wisselende vergrendelingsreeksen vereisen.
Relevantie voor de Anvaigo Mobile App
- SQL deadlocks zijn niet kritisch in de Anvaigo Mobile App omdat automatische herhalingsmechanismen ervoor zorgen dat mislukte transacties opnieuw worden verwerkt.
- Het slachtoffer van de impasse heeft geen negatieve invloed op de gegevensverwerking of de gebruikerservaring, omdat de gebruiker geen nieuwe pogingen ziet.
- Een deadlock kan in deze context niet altijd voorkomen worden, aangezien alleen de lockvolgorde van bronnen bepaalt of er een deadlock situatie optreedt.
- Dit is echter geen probleem omdat het systeem de verwerking van binnenkomende gegevens automatisch opnieuw probeert, zodat deze met succes wordt voltooid.
