File Integrity Problems in a Windows 95/98/NT Multi-User Environment

Introduction | Faulty redirector in Windows 95 | Cache across close | Opportunistic locking | NT 4.0 with Service Pack 3 | Other possible causes

For older systems. Users running more recent versions of PFXplus and Windows software should read the document "Windows 95/98/NT Multi-User Problems" instead.

We are aware of problems with some versions of Windows that can adversely affect file integrity in a multi-user environment. These problems are not caused by any problem in PFXplus, nor are they under the control of PFXplus. They are new problems caused apparently 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.

Faulty redirector in Windows 95 (original retail)

This is a Windows 95 bug. It usually affects a Windows/NT network only, but can affect Netware too. Windows/NT Workstation is not affected.

The solution is to install a later version of the Windows software. Choices are

  1. Later redirector (you need VREDIR.VXD version 4.00.955 or later)
  2. Windows 95A (Service Pack 1)
  3. Windows 95B (oem Service Pack 2)

We do not support Windows 95 original retail release in a multi-user environment with Windows/NT Server.

Cache across Close

Under certain circumstances, when you close a file on a Windows 95/98 client, Windows/NT Server assumes that you will open it again soon and ignores the request. This can lead to loss of cached data with programs that open and close many files.

It is recommended to make the following registry setting on the Windows 95/98 client.

HKEY_LOCAL_MACHINE
/System
/CurrentControlSet
/Services
/VxD
/VREDIR
"DiscardCacheOnOpen" (DWORD) = 1

Use REGEDIT.EXE on the Workstation. 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!

Opportunistic Locking

This is a Windows/NT Server optimisation which 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 a single-user file when it should be multi-user. The file or its indexes may be damaged with loss of data and a need for frequent reindexing.

The solution is to disable Opportunistic Locking by changing a setting in the Server registry, 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.

NT 4.0 with Service Pack 3

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.

Other Possible Causes

  1. Make sure you’re running in multi-user mode. Print out MULTIUSER (should be TRUE) and $USERNO (should be non-zero).
  2. Make sure you have enough file handles if you are running a DOS Extended product (PFL2 or PFL3). 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 safe.
  4. There are certain other problems known to affect Dataflex. These problems do not affect PFXplus because they are unique to software built using early Borland tools, which we do not use.
  5. Sites with persistent reliability problems should consider switching to Btrieve Client/Server engine.

Back to FAQ Page