Introduction | Where this technical bulletin applies | Opportunistic locking | Disabling OpLocks | Other considerations
We are aware of problems with newer versions of Windows that can adversely affect file integrity in a multi-user environment. These problems are not caused by any fault in PFXplus, nor are they under the control of PFXplus. They are problems caused by bugs or faults in Windows. They appear to be related to attempts by Microsoft to achieve faster network performance, perhaps at the expense of reliability.
The symptoms you may experience include lost data or damaged data files, the need for frequent re-indexing, and errors 20, 21, 22, 23 and 28. We recommend that you make the changes described below as soon as you see any of these problems, or even before you see them. This bulletin supersedes an earlier technical bulletin on this subject.
This bulletin applies to the following combinations of software.
Any combination of PFXplus, client operating system and server operating system may be used. Any available network protocol may be used. Correctly written programs can update data files with correct multi-user control, with no corruption or loss of data, except as noted below.
Earlier versions of Windows 95 are not supported (Windows 95A may work as well as 95B but we do not test it).
All versions of Windows 95/98 contain a bug in the handling of opportunistic locking, which can cause data corruption. Microsoft provides a remedy for this bug, at the cost of some performance. We also provide a remedy, with better performance.
We have recently identified a bug in Windows 98 causing occasional data corruption, not related to opportunistic locking. This has not been confirmed by Microsoft. There is currently no remedy. We do not recommend the use of Windows 98.
However, preliminary testing with Windows 98 Second Edition has failed to reproduce this bug. It may have been corrected. Subject to further testing, we recommend the use of Windows 98 Second Edition.
OpLocks are a Windows/NT Server optimisation that sometimes fails to work correctly. The intention is to make a single user who locks files run as fast as if they had the file open exclusively, but to invoke multi-user controls only when the a second user opens the file.
The effect can be that a user treats a file as single-user when it should be multi-user. The file or its indexes may be damaged with loss of data and a need for frequent reindexing.
Microsoft provides a remedy: OpLocks can be disabled. This effectively prevents data corruption, but may have a serious impact on performance, especially when a single user accesses a file. Our customers have been asking us to fix this.
We have been working closely with Microsoft over the past several months to clarify and resolve this issue. We have clearly isolated the problem, and developed our own remedy. We now recommend that OpLocks not be disabled if:
This table summarises the combinations.
| Server Version |
Client Version |
PFXplus Version |
Disable OpLocks? |
| Windows/NT SP3 | Windows/NT SP3 | Any | No |
| Windows/NT SP3 | Windows 95/98 | Post-4.40 | No |
| Windows/NT | Windows 95/98 | Pre-4.40 | Yes |
| Windows/NT (any) | Windows/NT (any) | Any | Yes |
| Other | Any | Any | Yes |
To disable opportunistic locking on Windows/NT by changing a setting in the Server registry, proceed as follows.
HKEY_LOCAL_MACHINE
\SYSTEM
\CurrentControlSet
\Services
\LanmanServer
\Parameters
"EnableOplocks" (DWORD) = 0 (default=1)
Use REGEDT32.EXE on the Server. If the value doesn't exist (and it probably won't) you have to add it. Otherwise modify it.
Note: this is dangerous! If you change the wrong thing in the registry, you can make the system stop working in various ways. Be careful!
Additional information is available in Microsoft Knowledge base article Q150991. Visit the Microsoft Web site for more details.