Często zadawane pytania / Anvaigo Mobile App / Informacje o zakleszczeniach w SQL
Jest to tłumaczenie automatyczne. Pierwotne stanowisko jest dostępne w angielski.

Informacje o zakleszczeniach w SQL

„SQL Deadlock” występuje w Microsoft Dynamics 365 Business Central, gdy dwa lub więcej procesów oczekuje na zasoby, które są zablokowane przez siebie nawzajem. W tej sytuacji żadna z zaangażowanych transakcji nie może być kontynuowana, ponieważ każda z nich posiada zasób, którego potrzebuje druga. Aby rozwiązać konflikt, serwer SQL automatycznie wybiera jeden proces jako ofiarę impasu i kończy go, wycofując transakcję. Drugi proces może następnie kontynuować wymagane zmiany.

Wpływ blokad SQL

  • Utrata danych nie występuje, ponieważ dobrze zaprojektowany kod Dynamics AL i wynikające z niego transakcje SQL są zaprojektowane do czystego wycofywania w przypadku awarii.
  • Dla użytkowników końcowych, na przykład podczas korzystania z klienta internetowego, impas spowoduje wyświetlenie komunikatu o błędzie. Użytkownik musi następnie powtórzyć akcję.

Unikanie zakleszczeń

  • Spójna kolejność blokowania procesów może zapobiec większości zakleszczeń. Musi to być zdefiniowane i wymuszone w logice aplikacji.
  • Całkowite unikanie nie zawsze jest wykonalne, zwłaszcza gdy względy wydajnościowe wymagają różnych sekwencji blokad.

Znaczenie dla aplikacji mobilnej Anvaigo

  • Blokady SQL nie są krytyczne w aplikacji mobilnej Anvaigo, ponieważ automatyczne mechanizmy ponawiania zapewniają, że nieudane transakcje są ponownie przetwarzane.
  • Ofiara impasu nie ma negatywnego wpływu na przetwarzanie danych lub doświadczenie użytkownika, ponieważ użytkownik nie zobaczy żadnych ponownych prób.
  • W tym kontekście nie zawsze można zapobiec zakleszczeniu, ponieważ sama kolejność blokowania zasobów określa, czy wystąpi sytuacja zakleszczenia.
  • Nie stanowi to jednak problemu, ponieważ system automatycznie ponawia próbę przetworzenia przychodzących danych, zapewniając ich pomyślne zakończenie.