Domande frequenti / Anvaigo Mobile App / Informazioni sui deadlock di SQL
Questa è una traduzione automatica. Il messaggio originale è disponibile in Inglese.

Informazioni sui deadlock di SQL

Un “Deadlock SQL” si verifica in Microsoft Dynamics 365 Business Central quando due o più processi sono in attesa di risorse che sono bloccate l’una dall’altra. In questa situazione, nessuna delle transazioni coinvolte può procedere perché ognuna è in possesso di una risorsa di cui l’altra ha bisogno. Per risolvere il conflitto, il server SQL seleziona automaticamente un processo come vittima del deadlock e lo termina annullando la transazione. L’altro processo è quindi in grado di continuare le modifiche richieste.

Impatto dei deadlock SQL

  • Non si verificano perdite di dati, poiché il codice Dynamics AL ben progettato e le transazioni SQL che ne derivano sono progettati per eseguire un rollback pulito in caso di guasto.
  • Per gli utenti finali, ad esempio quando si utilizza il client Web, uno stallo si tradurrà in un messaggio di errore. L’utente deve quindi ripetere l’azione.

Evitare i blocchi morti

  • Un ordine di blocco coerente tra i processi può evitare la maggior parte dei deadlock. Questo deve essere definito e applicato nella logica dell’applicazione.
  • L’evitamento completo non è sempre possibile, soprattutto quando le considerazioni sulle prestazioni richiedono sequenze di blocco diverse.

Rilevanza per l’App mobile Anvaigo

  • I deadlock SQL non sono critici nell’App mobile di Anvaigo, poiché i meccanismi automatici di retry garantiscono la rielaborazione delle transazioni non riuscite.
  • La vittima del deadlock non ha alcun impatto negativo sull’elaborazione dei dati o sull’esperienza dell’utente, poiché quest’ultimo non vedrà alcun tentativo.
  • In questo contesto non è sempre possibile evitare un deadlock, poiché è solo l’ordine di blocco delle risorse a determinare se si verifica una situazione di deadlock.
  • Tuttavia, questo non è un problema perché il sistema riprova automaticamente l’elaborazione dei dati in arrivo, assicurandosi che venga completata con successo.