"Se superó el número de bloqueos de uso compartido de archivos..." error durante el procesamiento de transacciones grandes

Nota

Office 365 ProPlus pasa a llamarse Microsoft 365 Apps para empresas. Para obtener más información sobre este cambio, lea esta publicación de blog.

Síntomas

Cuando uno o más usuarios procesan muchas transacciones en un entorno multiusuario, pueden producirse errores en las transacciones con el siguiente mensaje de error:

Se excedió el número de bloqueos de archivos compartidos. Aumente el valor de la entrada MaxLocksPerFile del Registro.

Causa

El error se produce si el número de bloqueos necesario para realizar una transacción supera el número máximo de bloqueos por archivo.

Solución alternativa

Importante esta sección, método o tarea contiene pasos que le indican cómo modificar el registro. No obstante, pueden producirse problemas graves si modifica el registro de manera incorrecta. En consecuencia, asegúrese de seguir estos pasos cuidadosamente. Para mayor protección, cree una copia de seguridad del registro antes de modificarlo. Después, puede restaurar el registro si se produce un problema. Para obtener más información acerca de cómo realizar una copia de seguridad y restaurar el registro, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:

322756 cómo realizar una copia de seguridad y restaurar el registro en Windows

Para solucionar este problema, aumente el número máximo de bloqueos por archivo. Para ello, utilice uno de los métodos siguientes.

Método 1: establecer la clave del registro en MaxLocksPerFile para aumentar el número máximo de bloqueos por archivo

  1. Haga clic en Inicio y, a continuación, haga clic en Ejecutar.

  2. Escriba regedit y, a continuación, haga clic en Aceptar.

  3. Use el método adecuado:

    • En Microsoft Access 2000, en Microsoft Access 2002 y en Microsoft Office Access 2003 que se ejecutan en un sistema operativo Windows de 32 bits, use el editor del registro para buscar la siguiente clave del registro:

      HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Jet\4.0\Engines\Jet 4,0

      En Microsoft Access 2000, en Microsoft Access 2002 y en Microsoft Office Access 2003 que se ejecutan en un sistema operativo Windows de 64 bits, use el editor del registro para buscar la siguiente clave del registro:

      HKEY_LOCAL_MACHINE \SOFTWARE\Wow6432Node\Microsoft\Jet\4.0\Engines\Jet 4,0

    • En Microsoft Office Access 2007 que se ejecuta en un sistema operativo Windows de 32 bits, use el editor del registro para buscar la siguiente clave del registro:

      HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Office\12.0\Access de conectividad de Engine\Engines\ACE

      En Microsoft Office Access 2007 que se ejecuta en un sistema operativo Windows de 64 bits, use el editor del registro para buscar la siguiente clave del registro:

      HKEY_LOCAL_MACHINE \SOFTWARE\Wow6432Node\Microsoft\Office\12.0\Access de conectividad de Engine\Engines\ACE

    • En Microsoft Access 2010 que se ejecuta en un sistema operativo Windows de 32 bits, use el editor del registro para buscar la siguiente clave del registro:

      HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Office\14.0\Access de conectividad de Engine\Engines\ACE

      En Microsoft Office Access 2010 que se ejecuta en un sistema operativo Windows de 64 bits, use el editor del registro para buscar la siguiente clave del registro:

      HKEY_LOCAL_MACHINE \SOFTWARE\Wow6432Node\Microsoft\Office\14.0\Access de conectividad de Engine\Engines\ACE

    • En Microsoft Access 2013 que se ejecuta en un sistema operativo Windows de 32 bits, use el editor del registro para buscar la siguiente clave del registro:

      HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Office\15.0\Access de conectividad de Engine\Engines\ACE

      En Microsoft Office Access 2013 que se ejecuta en un sistema operativo Windows de 64 bits, use el editor del registro para buscar la siguiente clave del registro:

      HKEY_LOCAL_MACHINE \SOFTWARE\Wow6432Node\Microsoft\Office\15.0\Access de conectividad de Engine\Engines\ACE

    • En Microsoft Access 2016 que se ejecuta en un sistema operativo Windows de 32 bits, use el editor del registro para buscar la siguiente clave del registro:

      HKEY_LOCAL_MACHINE \SOFTWARE\Microsoft\Office\16.0\Access de conectividad de Engine\Engines\ACE

      En Microsoft Office Access 2016 que se ejecuta en un sistema operativo Windows de 64 bits, use el editor del registro para buscar la siguiente clave del registro:

      HKEY_LOCAL_MACHINE \SOFTWARE\Wow6432Node\Microsoft\Office\16.0\Access de conectividad de Engine\Engines\ACE

  4. En el panel derecho del editor del registro, haga doble clic en MaxLocksPerFile.

  5. En el cuadro de diálogo Editar valor DWORD , haga clic en decimal.

  6. Modifique el valor del cuadro datos de valor según sea necesario y, a continuación, haga clic en Aceptar.

Tenga en cuenta que este método cambia la configuración del registro para todas las aplicaciones que usan el motor de base de datos de Microsoft Jet versión 4,0.

Método 2: usar el método SetOption para cambiar de MaxLocksPerFile temporalmente

Nota

El código de ejemplo de este artículo usa Microsoft Data Access Objects. Para que este código se ejecute correctamente, debe hacer referencia a la biblioteca de objetos de Microsoft DAO 3,6. Para ello, haga clic en referencias en el menú herramientas del editor de Visual Basic y asegúrese de que esté activada la casilla de verificación biblioteca de objetos de Microsoft DAO 3,6 .

El método SetOption invalida temporalmente el número predeterminado de bloqueos por archivo. Establezca el número predeterminado de bloqueos por archivo cuando establezca la clave del registro MaxLocksPerFile. El nuevo valor se establece con el método SetOption. El nuevo valor es válido hasta que se cierre el objeto DBEngine. Para usar el método 2, siga estos pasos:

  1. Abra Microsoft Access.
  2. Abra una base de datos y, a continuación, presione Alt + F11 para iniciar el editor de Visual Basic.
  3. En la ventana nombre de base de datos de Microsoft Visual Basic <>-[ < nombre de módulo> (código)] , haga clic en ventana inmediato en el menú Ver .
  4. En la ventana ejecución, escriba el siguiente código.

DAO. DBEngine. SetOption dbmaxlocksperfile, 15000 5. Presione la tecla entrar para ejecutar la línea de código.

Nota: Esto establece temporalmente el valor MaxLocksPerFile en 15.000.

Para procesar transacciones grandes, establezca el valor MaxLocksPerFile para cumplir con sus requisitos y, a continuación, ejecute las transacciones en la sesión.

Los cambios que se realizan en la configuración de MaxLocksPerFile mediante el método SetOption sólo están disponibles para la sesión actual.

Más información

La configuración de MaxLocksPerFile determina el número máximo de bloqueos que Microsoft Jet coloca en un archivo. El valor predeterminado de MaxLocksPerFile es 9.500. Sin embargo, no cambie este valor si está trabajando en un servidor de Novell NetWare, ya que el número máximo de bloqueos de registros de servidor por conexión es de 10.000.