Preguntas frecuentes / Anvaigo Mobile App / Información sobre bloqueos SQL
Esta es una traducción automática. El mensaje original está disponible en Inglés.

Información sobre bloqueos SQL

Un «SQL Deadlock» se produce en Microsoft Dynamics 365 Business Central cuando dos o más procesos están esperando recursos que están bloqueados entre sí. En esta situación, ninguna de las transacciones implicadas puede continuar porque cada una está reteniendo un recurso que la otra necesita. Para resolver el conflicto, el servidor SQL selecciona automáticamente un proceso como víctima del bloqueo y lo finaliza haciendo retroceder la transacción. A continuación, el otro proceso puede continuar con los cambios necesarios.

Impacto de los bloqueos SQL

  • La pérdida de datos no ocurre, ya que el código Dynamics AL bien diseñado y sus transacciones SQL resultantes están diseñadas para retroceder limpiamente en caso de fallo.
  • Para los usuarios finales, por ejemplo cuando utilizan el Cliente Web, un bloqueo dará lugar a un mensaje de error. A continuación, el usuario debe repetir la acción.

Evitar bloqueos

  • Un orden de bloqueo coherente entre procesos puede evitar la mayoría de los bloqueos. Esto debe definirse y aplicarse en la lógica de la aplicación.
  • Evitarlo por completo no siempre es factible, especialmente cuando las consideraciones de rendimiento exigen variar las secuencias de bloqueo.

Relevancia para la aplicación móvil Anvaigo

  • Los bloqueos de SQL no son críticos en la aplicación móvil Anvaigo, ya que los mecanismos automáticos de reintento garantizan que las transacciones fallidas se vuelvan a procesar.
  • La víctima del bloqueo no tiene ningún impacto negativo en el procesamiento de datos o en la experiencia del usuario, ya que éste no verá ningún reintento.
  • En este contexto, no siempre se puede evitar un bloqueo, ya que sólo el orden de bloqueo de los recursos determina si se produce una situación de bloqueo.
  • Sin embargo, esto no es problemático porque el sistema reintenta automáticamente el procesamiento de los datos entrantes, asegurándose de que se completa con éxito.