Roundtable Software E-Mail Newsletter Issue #6, August 5, 2000
Windows NT Bug
We have received sporadic reports from dealers for a long time regarding occasional data corruption on Windows NT systems. These problems were reported to be more or less random occurrences and we were never able to track things down to a particular source problem, either in our code or in Windows NT itself.
Recently Josh Hopkins of Matthews Computing (217-898-3461) had a user with this problem and he did some research, discovering that there is a major bug in Windows NT that can affect any networked database application, including the Roundtable Software Advantage Accounting System. It appears that this bug is the cause of the random corruption problem. The problem stems from a feature of NT called opportunistic locking (usually called oplock or exclusive oplock). This feature is intended to provide users with faster access to files when only one user is accessing those files. Rather than use conventional network record locking, in this situation Windows NT behaves much like a single-user system and saves time by not performing record locking and by caching large amounts of data rather than writing it to disk immediately. While this feature will indeed speed up processing on a system in some circumstances, it also has major problems. According to the information Josh Hopkins gathered, there is a problem when a user is in the oplock mode and has to switch over to regular networked mode (another user wants access to the files). Apparently NT sometimes loses some of the cached data, and sometimes fails to perform the record locks necessary before switching from one mode to the other. This problem will inevitably result in data corruption in any networked application that uses a shared database.
Microsoft has not, as far as we know, admitted to the existence of such a problem, but many major network software vendors are aware of it and require that users turn off oplock on their systems to avoid data corruption. Matthews Computing did a test by turning off oplock for several users who were having data corruption problems on NT and none have reported any new problems since then. We wish to thank Josh Hopkins and Matthews Computing for their invaluable assistance in identifying and testing this problem.
If you or your users are on Windows NT, we highly recommend that you turn off the oplock capability. The procedure for doing so is as follows and should be done on each NT workstation and the NT server. If you have any Windows 95 workstations, also complete the additional steps under the Windows NT With Windows 95 Workstations heading.
WARNING -- do not attempt this procedure unless you are familiar with the Registry Editor, and do not perform this procedure without first doing a backup of all registry files. Using the Registry Editor incorrectly can result in serious problems that may require you to reinstall your operating system. Roundtable Software is not liable for any damage you may do to your system.
1. Make sure you have the latest NT service packs installed (select My Computer ... Help ... About Windows NT to check this). The latest service pack is #6A.
2. Open the Registry Editor (Run ... select C:\WINNT\SYSTEM32\REGEDT32.EXE)
3. Select HKEY_LOCAL_MACHINE ... System ... CurrentControlSet ... Services ... LanManServer ... Parameters
4. Select Edit ... Add Value from the Registry Editor menu.
5. At Value Name type EnableOplocks, then select Data Type REG_DWORD.
6. Press OK button.
7. In the DWORD Editor, type 0 (zero) in the Data box.
8. Press OK button.
9. Exit the Registry Editor.
10. Reboot the computer to have the new setting take effect.
If doing the above has no effect, you may need to set additional registry values. To try additional settings, replace the value name in step 5 and data value in step 7 with the following:
Value Name = CachedOpenLimit
Value = 0
Value Name = autodisconnect
Value = ffffffff (8 f's)
Value Name = CacheFileTimeout
Value = 1
Value Name = UseOpportunisticLocking
Value = 0
Each new setting should be tried before adding subsequent ones.
Windows NT with Windows 95 Workstations
There is a new version of VREDIR available that corrects potential data corruption problems with Windows 95 workstations running on Windows NT 4 networks. To install the patch follow these instructions:
1. On the web, download VRDRUPD.EXE at this address:
2. Copy this file onto all Windows 95 workstations (or run it from diskette at each).
3. On each Windows 95 workstation perform steps 4 – 12 below.
4. Run the patch program (select Run ... VRDRUPD.EXE).This will install the patch files.
5. Open the Registry Editor (Run ... select C:\WINDOWS\REGEDIT.EXE)
6. Select HKEY_LOCAL_MACHINE ... System ... CurrentControlSet ... Services ... VxD ... VREDIR
7. Select Edit ... New ... Binary Value from the Registry Editor menu.
8. At Name type DiscardCacheOnOpen, then press ENTER.
9. Double-click on the new entry and type 01 at the prompt.
10. Press OK button.
11. Exit the Registry Editor.
12. Reboot the computer to have the new setting take effect.
For Microsoft's discussion of this, go to: http://support.microsoft.com/support/kb/articles/q129/2/02.asp?FR=0
Roundtable Software Home | Add-On
Products | Custom Programming | Support
Services | Power Utilities
| Partners | What's New|
|Roundtable Software 30831 Cove Road Tavares, FL 32778-5164
(352) 253-9779 FAX: (815) 572-5446
All contents copyright © 2000-2008 Roundtable Software. All rights reserved.