Problemas de bloqueo causados por Microsoft Dynamics NAV 2009 SP1 con nivel de aislamiento SERIALIZABLE de Microsoft SQL Server

Se aplica a: Dynamics NAV 2009

PUBLICACIÓN RÁPIDA ARTÍCULOS PROPORCIONAN INFORMACIÓN DIRECTAMENTE DESDE DENTRO DE LA ORGANIZACIÓN DE SOPORTE TÉCNICO DE MICROSOFT. LA INFORMACIÓN CONTENIDA EN ESTE DOCUMENTO SE CREA EN RESPUESTA A EMERGENTES O ÚNICOS TEMAS, O ESTÁ DESTINADO A COMPLEMENTAR OTRA INFORMACIÓN DE KNOWLEDGE BASE.
En este artículo se aplica a Microsoft Dynamics NAV para todos los países y todas las configuraciones regionales.

Síntomas


Los clientes de Microsoft Dynamics NAV pueden experimentar problemas de bloqueo cuando varios usuarios especifican entradas de diario, entradas de orden de venta, entradas de orden de compra y tareas similares en Microsoft Dynamics NAV 2009 SP1.

Causa


Rango no deseado pueden deberse a problemas de bloqueo de Microsoft SQL Server se bloquea en la base de datos de SQL Server. Estos bloqueos de intervalo se producen cuando se ejecuta en el nivel de aislamiento SERIALIZABLE en servidor de Microsoft SQL.


Sin el hotfix descrito en este artículo, Microsoft Dynamics NAV utiliza el nivel de aislamiento de transacción SERIALIZABLE en Microsoft SQL Server en las transacciones de escritura. Después de aplicar esta revisión, es posible configurar Microsoft Dynamics NAV para utilizar en su lugar el nivel de aislamiento REPEATABLE READ.

Solución


Para resolver este problema, siga estos pasos:
  1. Aplique el hotfix que se describe en este artículo.
  2. Configurar Microsoft Dynamics NAV para utilizar el nivel de aislamiento REPEATABLE READ en Microsoft SQL Server. Para ello, puede habilitar el indicador en el campo de diagnóstico de la tabla de $ndo$ dbproperty en la base de datos de Microsoft Dynamics NAV 4194304. Para habilitar el 4194304 indicador, ejecute la siguiente instrucción TSQL en la base de datos de SQL de Microsoft Dynamics NAV:
    update [$ndo$dbproperty] set diagnostics = diagnostics | 4194304
    Para obtener más información sobre el nivel de aislamiento de transacciones de Microsoft SQL Server, visite el tema "Niveles de aislamiento en el motor de base de datos" en MSDN de Microsoft.
Habilitar el nivel de aislamiento REPEATABLE READ en Microsoft Dynamics NAV mejorará el rendimiento general en situaciones donde varios usuarios están experimentando bloqueo cuando se introducen entradas de diario, entradas de orden de venta, entradas de orden de compra y tareas similares.

La diferencia entre el nivel de aislamiento SERIALIZABLE y el nivel de aislamiento REPEATABLE READ es que el nivel de aislamiento SERIALIZABLE protege frente a lecturas ficticias. Por lo tanto, lo que permite el nivel de aislamiento REPEATABLE READ presenta un riesgo teórico de lecturas ficticias. En el ejemplo siguiente se muestra lo que esto significa desde una perspectiva de C/AL.


Nota: Microsoft proporciona ejemplos de programación fines ilustrativos únicamente, sin ninguna garantía tanto expresa como implícita. Esto incluye, pero no se limita, a las garantías implícitas de comerciabilidad o idoneidad para un propósito particular. Este artículo asume que está familiarizado con el lenguaje de programación que se muestra y con las herramientas que se utilizan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden explicarle la funcionalidad de un determinado procedimiento. Sin embargo, no modificarán estos ejemplos para ofrecer mayor funcionalidad ni crearán procedimientos que cumplan sus requisitos específicos.
MYTABLE.LOCKTABLE;MYTABLE.SETCURRENTKEY("Document No.", "Line No.");
MYTABLE.SETRANGE(MYTABLE."Document No.", '1');
MYTABLE.SETRANGE(MYTABLE."Line No.", 1, 10);
IF MYTABLE.FIND('-') THEN
REPEAT
UNTIL (MYTABLE.NEXT()=0);

IF MYTABLE.FIND('-') THEN
REPEAT
UNTIL (MYTABLE.NEXT()=0);
COMMIT;

Con nivel de aislamiento de transacción SERIALIZABLE, se bloquearán todos los registros existentes durante el primer bucle "Repetir hasta" y otros usuarios también podrán insertar nuevos registros en el intervalo especificado. El registro que no tiene ningún documento = 2, línea n = 1 también se bloquearán. Por lo tanto, el segundo bucle siempre leerá exactamente el mismo resultado que el primer bucle. Con nivel de aislamiento de transacción REPEATABLE READ, teóricamente alguien puede insertar un nuevo registro dentro del rango mencionado que aparecerá como un registro adicional en el segundo bucle.

Para deshabilitar el 4194304 indicador, ejecute la siguiente instrucción TSQL:
update [$ndo$dbproperty] set diagnostics = diagnostics ^ 4194304
Microsoft recomienda pruebas exhaustivas antes de realizar cambios en un entorno vivo para asegurarse de que no hay ningún resultado inesperado.

Información de la revisión

Existe un hotfix disponible desde Microsoft. Hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si tiene un problema al descargar, instalar esta revisión, o si tiene otras preguntas de soporte técnico, póngase en contacto con su socio o si está inscrito en un plan de soporte directamente con Microsoft, puede ponerse en contacto con soporte técnico para Microsoft Dynamics y crear una nueva solicitud de soporte técnico. Para ello, visite el siguiente sitio web de Microsoft:También puede comunicarse con soporte técnico para Microsoft Dynamics por teléfono mediante estos vínculos para números de teléfono específico del país. Para ello, visite uno de los siguientes sitios Web de Microsoft:

Asociados de negociosClientesEn casos especiales, los costos derivados normalmente de las llamadas pueden cancelarse si un profesional de soporte técnico de Microsoft Dynamics y productos relacionados de soporte determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.



El mensaje incluirá un hipervínculo y una contraseña. Puede usar el hipervínculo para descargar la revisión de Microsoft Dynamics NAV o los archivos de actualización. Al hacer clic en el hipervínculo, se abre el cuadro de diálogo Descargar archivo-Advertencia de seguridad . A continuación, deberá ejecutar, guardar o cancelar la descarga.


Si hace clic en Ejecutar, los archivos comienzan la descarga y el proceso de extracción. Debe especificar una carpeta para los archivos nuevos y, a continuación, proporcione la contraseña.


Si hace clic en Guardar, especifique una ruta de acceso para guardar el archivo comprimido. Cuando se abre el archivo que guardó, deberá especificar una ruta para los archivos. A continuación, debe proporcionar la contraseña incluida en el correo electrónico.


Si hace clic en Cancelar, se detiene el proceso de descarga.



Cómo instalar una revisión de Microsoft Dynamics NAV o un archivo de actualización

Las actualizaciones y revisiones de la plataforma Microsoft Dynamics NAV están disponibles como archivos únicos. Para instalar una revisión de Microsoft Dynamics NAV o una actualización, debe reemplazar los archivos de instalación de Microsoft Dynamics NAV existentes con la revisión o la actualización de los archivos. Para ello, siga estos pasos:

Paso 1: Reemplazar los archivos de la instalación de cliente de Microsoft Dynamics NAV Classic

En la instalación de cliente de Microsoft Dynamics NAV Classic, sustituya los archivos siguientes utilizando la revisión o la actualización de los archivos.
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Dbm.dll6.0.30609.0427,84808-Feb-201015:31x86
Fin.exe6.0.30609.012,598,60008-Feb-201015:32x86
Finhlink.exe6.0.30609.0452,43208-Feb-201015:32x86
Finsql.exe6.0.30609.012,713,80808-Feb-201015:32x86
Nc_netb.dll6.0.30609.096,59208-Feb-201015:31x86
Nc_tcp.dll6.0.30609.098,64008-Feb-201015:31x86
Nc_tcps.dll6.0.30609.0141,13608-Feb-201015:31x86
Ndbcs.dll6.0.30609.01,348,94408-Feb-201015:31x86
Slave.exe6.0.30609.0152,40008-Feb-201015:31x86
Para reemplazar los archivos existentes de Microsoft Dynamics NAV, siga estos pasos:
  1. Cierre al cliente para Microsoft Dynamics NAV Classic.
  2. Busque el directorio de instalación de cliente de Microsoft Dynamics NAV Classic. El cliente de Microsoft Dynamics NAV Classic normalmente se instala en el directorio siguiente:
    C:\Program Files\Microsoft Dynamics NAV\60\Classic
  3. Copie los archivos que ha descargado.
  4. Pegue los archivos que ha descargado en el directorio de instalación de cliente de Microsoft Dynamics NAV Classic.
  5. Haga clic en para sobrescribir los archivos en el directorio.

Paso 2: Reemplace los archivos de la instalación del cliente adaptado a roles de Microsoft Dynamics NAV

En la instalación de cliente adaptado a roles de Microsoft Dynamics NAV, sustituya los archivos siguientes utilizando la revisión o la actualización de los archivos.
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Microsoft.dynamics.framework.patterns.dll1.3.10803.12071,65608-Feb-201006:30x86
Microsoft.dynamics.framework.ui.dll1.3.10803.120698,32808-Feb-201006:30x86
Microsoft.dynamics.framework.ui.mapping.dll1.3.10803.120104,42408-Feb-201006:30x86
Microsoft.dynamics.framework.ui.navigation.dll1.3.10803.12034,80008-Feb-201006:30x86
Microsoft.dynamics.framework.ui.ux2006.dll1.3.10803.12088,04008-Feb-201006:30x86
Microsoft.dynamics.framework.ui.ux2006.winforms.dll1.3.10803.12063,48008-Feb-201006:30x86
Microsoft.dynamics.framework.ui.windows.dll1.3.10803.12083,94408-Feb-201006:30x86
Microsoft.dynamics.framework.ui.winforms.controls.dll1.3.10803.1202,111,48808-Feb-201006:30x86
Microsoft.dynamics.framework.ui.winforms.dll1.3.10803.120690,15208-Feb-201006:30x86
Microsoft.dynamics.nav.client.builder.dll6.0.30609.0198,54408-Feb-201015:20x86
Microsoft.dynamics.nav.client.exe6.0.30609.0149,37608-Feb-201015:20x86
Microsoft.dynamics.nav.client.interop.communicator.dll1.0.559.18375,68808-Feb-201015:20x86
Microsoft.dynamics.nav.client.serviceconnection.dll6.0.30609.0104,35208-Feb-201015:20x86
Microsoft.dynamics.nav.client.ui.dll6.0.30609.0505,72808-Feb-201015:20x86
Microsoft.dynamics.nav.client.winforms.dll6.0.30609.0337,80808-Feb-201015:20x86
Microsoft.dynamics.nav.client.winforms.tlbNo aplicable2,64408-Feb-201012:14No aplicable
Microsoft.dynamics.nav.language.dll6.0.30609.01,992,57608-Feb-201015:20x86
Microsoft.dynamics.nav.types.dll6.0.30609.0567,16008-Feb-201015:20x86
Microsoft.office.interop.outlook.dll10.0.4504.0395,13608-Feb-201015:32x86
Para reemplazar los archivos existentes de Microsoft Dynamics NAV, siga estos pasos:
  1. Cerrar al cliente adaptado a roles Microsoft Dynamics NAV.
  2. Busque el directorio de instalación del cliente adaptado a roles de Microsoft Dynamics NAV.

    El cliente adaptado a roles Microsoft Dynamics NAV se instala normalmente en el directorio siguiente:

    C:\Program Files\Microsoft Dynamics NAV\60\RoleTailored cliente
  3. Copie los archivos que ha descargado.
  4. Pegue los archivos que ha descargado en el directorio de instalación del cliente adaptado a roles de Microsoft Dynamics NAV.
  5. Haga clic en para sobrescribir los archivos en el directorio.

Paso 3: Reemplace los archivos de la instalación de Microsoft Dynamics NAV Application Server

Si tiene instalado Microsoft Dynamics NAV Application Server, sustituya los archivos siguientes de la instalación de Microsoft Dynamics NAV Application Server utilizando la revisión o la actualización de los archivos.
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Dbm.dll6.0.30609.0427,84808-Feb-201015:31x86
Nas.exe6.0.30609.02,259,78408-Feb-201015:32x86
Nassql.exe6.0.30609.02,352,46408-Feb-201015:33x86
Ndbcs.dll6.0.30609.01,348,94408-Feb-201015:32x86
Slave.exe6.0.30609.0152,40008-Feb-201015:31x86
Para reemplazar los archivos, siga estos pasos.
  1. Detener el servidor de aplicaciones Microsoft Dynamics NAV.
  2. Busque el directorio de instalación de Microsoft Dynamics NAV Application Server. Microsoft Dynamics NAV Application Server normalmente se instala en el directorio siguiente:
    C:\Program Files\Microsoft Dynamics NAV\60\Application Server
  3. Copie los archivos que ha descargado.
  4. Pegue los archivos que ha descargado en el directorio de instalación de Microsoft Dynamics NAV Application Server.
  5. Haga clic en para sobrescribir los archivos en el directorio.
  6. Inicie Microsoft Dynamics NAV Application Server.

Paso 4: Reemplace los archivos de la instalación de Microsoft Dynamics NAV Server

En la instalación de Microsoft Dynamics NAV Server, sustituya los archivos siguientes utilizando el archivo de actualización o la revisión.
Nombre del archivoVersión del archivoTamaño de archivoFechaHoraPlataforma
Httpcfg.exe5.2.3790.022,35208-Feb-201015:32x86
Microsoft.dynamics.nav.language.dll6.0.30609.01,992,57608-Feb-201015:20x86
Microsoft.dynamics.nav.ncl.dll6.0.30609.0604,02408-Feb-201015:20x86
Microsoft.dynamics.nav.server.exe6.0.30609.0141,18408-Feb-201015:20x86
Microsoft.dynamics.nav.service.dll6.0.30609.0145,28008-Feb-201015:20x86
Microsoft.dynamics.nav.service.runtime.dll6.0.30609.075,66408-Feb-201015:20x86
Microsoft.dynamics.nav.service.webservices.dll6.0.30609.0145,30408-Feb-201015:20x86
Microsoft.dynamics.nav.types.dll6.0.30609.0567,16008-Feb-201015:20x86
Microsoft.dynamics.nav.watson.dll6.0.30609.042,88008-Feb-201015:20x86
Nclcsrt.etxNo aplicable89,52508-Feb-201008:28No aplicable
Nclcsrt.stxNo aplicable91,72408-Feb-201008:28No aplicable
Nclcsrts.dll6.0.30609.01,462,60808-Feb-201015:32x86
Ndbcs.dll6.0.30609.01,348,94408-Feb-201015:32x86
Para sustituir estos archivos, siga estos pasos:
  1. Detener el Microsoft Dynamics NAV Server.
  2. Busque el directorio de instalación de Microsoft Dynamics NAV Server.

    La de Microsoft Dynamics NAV Server normalmente se instala en el directorio siguiente:

    C:\Program Files\Microsoft Dynamics NAV\60\Service
  3. Copie los archivos que ha descargado.
  4. Pegue los archivos que ha descargado en el directorio de instalación de Microsoft Dynamics NAV Server.
  5. Haga clic en para sobrescribir los archivos en el directorio.
  6. Iniciar el Microsoft Dynamics NAV Server.

Requisitos previos

Debe tener Microsoft Dynamics NAV 2009 Service Pack 1 instalado para aplicar esta revisión.

Estado


Microsoft ha confirmado que se trata de un error de los productos de Microsoft que se enumeran en la sección "Aplicable a".

Más información


Para obtener más información, haga clic en el siguiente número de artículo para verlo en Microsoft Knowledge Base:

824684 descripción de la terminología estándar que se utiliza para describir las actualizaciones de software de Microsoft

MICROSOFT Y/O SUS PROVEEDORES, REALIZAR NINGUNA REPRESENTACIÓN O GARANTÍA SOBRE LA IDONEIDAD, LA CONFIABILIDAD O LA EXACTITUD DE LA INFORMACIÓN CONTENIDA EN LOS DOCUMENTOS Y LOS GRÁFICOS RELACIONADOS PUBLICADOS EN ESTE SITIO WEB (LOS "MATERIALES") PARA CUALQUIER PROPÓSITO.

LOS MATERIALES PUEDEN INCLUIR IMPRECISIONES TÉCNICAS O ERRORES TIPOGRÁFICOS Y PODRÁN REVISARSE EN CUALQUIER MOMENTO SIN PREVIO AVISO. EN LA MÁXIMA MEDIDA PERMITIDA POR LA LEY APLICABLE, MICROSOFT Y SUS PROVEEDORES RENUNCIAN A Y EXCLUYEN TODAS LAS REPRESENTACIONES, GARANTÍAS Y CONDICIONES YA SEA EXPRESA, IMPLÍCITA O ESTATUTARIA, INCLUYENDO PERO SIN LIMITARSE A LAS REPRESENTACIONES, GARANTÍAS O CONDICIONES DE TÍTULO, NO INFRACCIÓN, SATISFACTORIA CONDICIÓN O CALIDAD, COMERCIABILIDAD Y APTITUD PARA UN FIN DETERMINADO, CON RESPECTO A LOS MATERIALES.