Síntomas
Suponga que usa la replicación de mezcla en Microsoft SQL Server 2012 o en Microsoft SQL Server 2014. Como parte del proceso de sincronización, el agente de mezcla realiza una nueva generación en una sesión. Si, por algún motivo, como un bloqueo irreversible o el tiempo de espera, la generación de la transacción se selecciona como sujeto del interbloqueo y la transacción se deshace, puede haber una gran cadena de bloqueo para MSinternal_makegeneration_inprog bloqueo de aplicación en las próximas generaciones, y la sesión mencionada anteriormente se muestra como el bloqueador de cabezales.
Causa
El bloqueo de aplicación que se usa para ayudar a proteger el proceso de generación es un bloqueo de aplicación de nivel de sesión. Cuando se detecta un interbloqueo durante el proceso de creación de la generación, solo se deshace la transacción pero no se cancela la sesión. Para liberar un bloqueo de aplicación de nivel de sesión, la sesión debe cerrar sesión. Por lo tanto, debido al diseño de la lógica de reintentos (la sesión no se cerrará durante la generación que provocaba errores en la duplicación de mezcla), si la primera generación falla con el interbloqueo, el bloqueo de sesión (MSinternal_makegeneration_inprog) que obtuvo, no se liberará durante la reversión de la transacción. Esto causa una cadena de bloqueo de solicitudes de bloqueo en el proceso de creación de la generación próxima. Se muestra el bloqueador de cabezales como la primera solicitud de creación que genera un error con interbloqueo. Antes de la revisión, SQL Server solo borra el bloqueo para un proceso de creación de generación correcto. Deja un bloqueo de aplicación de sesión huérfana antes del cierre de sesión de la sesión si se produce un interbloqueo.
Resolución
Este problema se solucionó por primera vez en la siguiente actualización acumulativa de SQL Server.
Actualización acumulativa 5 para SQL Server 2014 /en-us/help/3011055
Actualización acumulativa 3 para SQL Server 2012 SP2 /en-us/help/3002049
Cada actualización acumulativa para SQL Server contiene todas las revisiones y todas las revisiones de seguridad incluidas en la actualización acumulativa anterior. Consulte las últimas actualizaciones acumulativas para SQL Server:
Estado
Microsoft ha confirmado que se trata de un problema de los productos de Microsoft recogidos en la sección "Se aplica a".