Windows 95/98/NT Multi-User Problems

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.

Versions Supported

This bulletin applies to the following combinations of software.

PFXplus Version

Client Operating System

Server Operating System

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.

Opportunistic Locking (OpLocks)

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:

  1. the Server is Windows/NT 4.00 Server Service Pack 3 or later, and either
  2. the Client is Windows/NT 4.00 Workstation Service Pack 3 or later, or
  3. the Client is Windows 95B or later and PFXplus is 4.40 or later.

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

Notes

  1. Windows/NT 4.0 SP3 Workstation is Oplocks-safe. Earlier versions may be safe too, but we do not test them.
  2. There are bugs in early versions of Windows 95 causing data corruption. Don't use them!
  3. There is a bug in Windows 95B causing data corruption when OpLocks are enabled, which PFXplus 4.40 can remedy.
  4. There is a (different) bug in Windows 98 causing data corruption which PFXplus cannot remedy. Use at your own risk!
  5. Near enough is not good enough! A single non-approved workstation on a network can cause data corruption, even if everything else is correct. You must control every workstation which has update capability.
  6. If for any reason you need to reinsert the original NT 4.0 disks, for example to change the network protocol, then you need to do a fresh reload of the Service Pack.
  7. Novell Netware 5.0 supports opportunistic locking but we have not tested it. If in doubt, disable.

Disabling OpLocks

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.

Other Considerations

  1. Make sure you're running in multi-user mode. Print out MULTIUSER (should be TRUE) and $USERNO (should be non-zero).
  2. If you are running a DOS Extended product (PFL3), make sure you have enough file handles. This is not required for Windows products (PFLW, PFLN or PFLT).
    1. On Windows 95/98, set FILES=150 (or more) in CONFIG.SYS.
    2. On Windows/NT Workstation, set FILES=150 (or more) in CONFIG.NT.
  3. Some resident virus software can wreak havoc with file handles. If in doubt, disable the resident protection. Boot-time protection is usually safe.
  4. There are certain other problems known to affect Dataflex. These problems do not affect PFXplus.
  5. Sites with persistent reliability problems should consider switching to Btrieve Client/Server engine.

Back to FAQ Page