Improperly configured Windows networks can lead to data corruption in any file system database. Microsoft Windows operating systems (starting with NT) were designed with client-server database support in mind. They use a strategy referred to as opportunistic file locking or "oplocks" to optimise client-server performance. Simpler file sharing database engine arrangements such as workgroup engines, which are not centrally managed and involve higher levels of concurrency, have not been anticipated under this philosophy, even though the most commonly used networked database and accounting software systems in use throughout the world use the simpler approach to avoid higher costs and overkill.

With oplocks enabled by default, systems running on underlying database systems that are not client-server suffer from a number of problems, including database corruption. IT professionals are more often than not unaware of the issue and install systems without consideration of this now long historical problem and without regard to the database needs of programs that they install.

Microsoft Access and any product using the Jet engine are affected like Peachtree, QuickBooks, Advanced Accounting, TAS, Clarion, Delphi, ACT! and many, many others. For these systems you must add certain registry keys to disable opportunistic locking to all of your PC's.

You may not be not suffering from this usual database corruption because you have locking disabled, however a downside of this is benefit is performance. If oplocks is disabled, adverse side affects are that your overall network performance will suffer and true client-server database engine system performance (but not stability) will most likely suffer the most as you have found. Another strategy sometimes used is to move the database to a completely different network (the trouble is that the oplocks setting is all or nothing: you cannot enable it for some applications and disable it for others) so this gets around Microsoft's limitation.


Note that the opportunistic locking registry keys are valid only for traditional SMB (SMB1). You cannot turn off opportunistic locking for SMB2. SMB2 was introduced in Windows Vista to enable faster communication between computer that are running Windows Vista and Windows Server 2008 or Windows Server 2008 R2.