If you receive an error message of possible data corruption in a file while using FleetVIP over your network, that could be caused by various problems including:
- Some form of caching including opportunistic locking (oplocks), vpn client software, etc. is active.
- A faulty hard drive is corrupting data.
- A faulty network card is corrupting data.
- Some other hardware or network malfunction is corrupting data.
- A mixed base of Windows PCs including versions prior to Windows 8 or Server 2012.
This error message may occur if opportunistic locking (oplocks) which is a form of file caching has not been turned off. The FleetVIP installer automatically turns off oplocks because the FleetVIP database manager already incorporates row level sharing and locking as needed. Therefore, it is unlikely that this error scenario occurs if the latest version of FleetVIP is installed.
Using opportunistic locking as provided by the Windows OS only provides file-level sharing and locking and introduces the risk that cached files will be slightly out of date with the actual source database files, resulting in possible corruption of the database if an update is applied based on the state of the cached file. Therefore, as noted in the User Guide, any form of caching including oplocks should be turned off.
Microsoft has admitted this was a problem in the past with various versions of the Windows OS prior to Windows 8. Microsoft has issued at least two hotfixes including:
- https://support.microsoft.com/en-us/kb/2028965 – this article includes an optional workaround registry entry for client workstations;
- Client workstation registry entry workaround for computers running SMB-2 – To work around this issue, disable(recommended) or reduce the time-out threshold for the local cache update by modifying the registry. To do this, follow these steps:
- Click Start, click Run, type Regedit, and then press ENTER.
- Locate the following registry subkey:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanWorkstation\Parameters
- Under this registry subkey, right-click FileInfoCacheLifetime, and then click Modify.
- Under Base, click Decimal, and then type a number that is smaller than the number that appears in the Value date box.Notes
- Type 0 to disable the time-out threshold for the local cache update.
- The number that you type indicates the length in second of the time-out threshold for local cache update.
- This workaround typically applies to Windows Vista, Windows 7 and Server 2008.
- It is a good idea to backup the registry first.
- Do not attempt editing the registry if you are not familiar with this process.
The hotfix approach may or may not be appropriate for your environment. Adding a registry entry on client workstations may be an easier option but that is for you to determine.
We are providing this information for educational purposes and it is up to you to determine if it is appropriate for your environment. In most cases, simply re-installing FleetVIP will turn off oplocks.
There may be newer or additional information available from Microsoft since they are always posting new fixes and troubleshooting tips for their products. If you have questions or need assistance regarding Microsoft products including hotfixes or registry entries, please contact Microsoft.
- Turn off oplocks either by applying Microsoft hotfixes or manually editing the registry as described in Microsoft Knowledge Base articles or reinstalling FleetVIP using a fresh download from this website.
- Recommended: Verify oplocks are in fact turned off by viewing relevant registry entries mentioned above.
- Restore your FleetVIP database with a non-corrupted backup file or email us and we may be able to repair the corrupted file.
- If corruption errors continue, the backup file may also be corrupted or there may be a hardware or network issue that needs to be identified.
- If necessary, run any affected applications such as FleetVIP, Microsoft Access apps, etc. in single-user-only mode on a standalone PC until the cause of the errors can be identified and resolved.
- If feasible, upgrade all Windows PCs to Windows 8 or Server 2012 or newer.