
Services

Superbase
Networking Fact Sheet

The Issues
In the recent past, the computer software market has seen
the release of a number of new operating system (OS) and network
operating system (NOS) versions. Among these is Windows 95,
Windows 98, Windows Me, Windows NT 4.0 Workstation, Windows
NT 4.0 Server, Windows 2000 Professional, Windows 2000 Server,
and Windows XP. In the process, new network client software
has also been created to work with the new operating systems,
both for existing and newly-released NOSs. This has resulted
in a number of problems.
Most (if not all) of the new network client software has
been pre-configured to run in such a way that it is faster,
but not necessarily safe for client-side locking control of
a database, such as is typical of products like Superbase,
Paradox, dBase, FoxPro, etc. These problems would not be demonstrated
by products such as word processors or spreadsheets because
they generally do not allow more than one person to work on
the same document at the same time. Also, true client-server
applications would not be affected, since there would only
be one process actually accessing the data files, the server
application.
We have identified the issues for the two most common NOSs,
Novell Netware and Microsoft NT Server LAN Manager. The following
should be taken as a guide to the proper approach to using
these two NOSs and how to configure potential clients thereof.
Not making the appropriate changes can result in data corruption
and/or destruction of the database to a degree that it may
not be recoverable.
Some of our customers have told us that they feel that such
a move that is specific to Superbase is to drastic to do in
their networks and cannot be justified. We feel that it is
important to make clear that this problem does not affect
only Superbase, but is a general problem that affects any
database application where the client controls data access
and concurrency (or other application with concurrent collaboration
support). The article that is
linked here was posted to the comp.lang.clipper newsgroup
in December of 2002 and does the best job we have yet seen
to explain the issues.
| Client OS |
Network OS |
Configuration Notes |
| Windows 95, Windows 98,
Windows Me, Windows NT 4.0, Windows 2000, or Windows
XP using Novell Client32
or later |
Netware |
The following settings
can be made in the Novell
client under Windows itself.
There are only 4 settings that appear
to be of issue
on Client32 for Novell. They are:
| Setting |
Defaults to |
Should be |
| Opportunistic Locking |
On |
Off |
| Packet Burst Mode |
On |
Off |
| Server caches writes
(this may be described differently) |
On |
Off |
| Optional setting (may
slow the system down considerably so only
use it if you are getting data corruption) |
TrueCommit |
Off |
On |
Some of these settings may not appear in the version
of Client32 in use,
since Novell have removed some of them in the interim.
If the setting
doesn't appear, then don't worry about it (much).
A sign, that Packet Burst Mode is on (and probably
all of the other
settings are also incorrectly set) is Superbase 3.2,
3.5 or 3.6 (prior to the maintenance release builds
496 or later) coming up and saying "Product not
registered". We have had reports that turning TrueCommit
on can result in extreme slowness on the network. If
this is a problem, it may be worth testing with it turned
off, and then checking to make sure that no file corruption
is occurring under a reasonably heavy load. Obviously,
all such testing should occur on a copy of the database
and not on the original!
|
| Windows 95, Windows 98, Windows Me,
Windows NT 4.0, Windows 2000, or Windows XP using the
Microsoft client for Netware |
Netware |
Client has not been tested but is generally
not recommended by Novell. If any settings would have
to be changed, they are likely to also be buried in
the registry somewhere, with the actual values unknown
to everyone but Microsoft. |
| Windows 95, Windows 98, Windows Me,
Windows NT (all versions), Windows 2000 (all versions),
Windows XP (all versions) |
NT Server 4.0, Windows 2000 acting as
a server (not necessarily the Server version), or Windows
XP acting as a server |
Server
Settings
Data corruption appears to be caused by
the opportunistic locking setting. To resolve this,
the following change must be made to the registry on
the server:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet
\Services\LanmanServer\Parameters
It will be necessary to add the following
value as it is listed below,
with the proper data type and the value listed. Once
these changes are made, the server must be restarted.
| Setting |
Data Type |
Should be |
| EnableOplocks |
REG_DWORD |
0 |
The default value of this parameter is
1 (true) and is set even if the parameter is not physically
present in the registry. To disable it, the parameter
must be added and set to 0.
This setting specifies whether the server
allows clients to use opportunistic locking on files.
Opportunistic locking is supposed to provide a significant
performance enhancement, but is unsafe where client-side
locking is involved and in the case of networked databases
like Superbase actually can slow down database access!
If you are using Superbase in LAN or Distributed LAN
mode then this setting is required to set to 0 as shown
above to prevent data loss. If you are using Superbase's
PPCS (Peer-to-Peer Client/Server), then it may be safe
to leave this setting enabled, since only one application,
the server, is writing to the data files. Still, there
is no real advantage in leaving this setting enabled.
Client Settings for Windows
9.x or Earlier
If you are using Windows 9.x or earlier
there are no additional client-side setting that are
necessary.
Client Settings for Windows
NT 4 Acting as a Workstation or Client
To modify the settings for NT Workstation, it is necessary
to edit the registry, since Microsoft does not provide
any method of configuring these options in their client
setup. The registry key path is:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\LanmanWorkstation\Parameters
It will be necessary to add the following values as
they are listed below, with the proper data type
and the value listed (0 in all cases):
| Setting |
Data Type |
Should be |
| UseLockReadUnlock |
REG_DWORD |
0 |
Indicates whether the
redirector uses the lock-and-read and
write-and-unlock performance enhancements.
When this value is enabled, it generally provides
a significant
performance benefit. However, database applications
that lock
a range and don’t allow data within that range
to be read will
suffer performance degradation unless this parameter
is disabled. |
UseOpportunisticLocking |
REG_DWORD |
0 |
Indicates whether the
redirector should use opportunistic-locking
(oplock) performance enhancement. According to
the documentation, this parameter should be disabled
only to isolate problems. In the case of Superbase,
it should be off.
Opportunistic locking provides a significant
performance enhancement, but is unsafe where client-side
locking is involved. If you are using Superbase
in LAN or Distributed LAN mode then this setting
is required to be off to prevent data loss. If
you are using Superbase's PPCS (Peer-to-Peer Client/Server),
then it may be safe to leave this setting enabled,
since only one application, the server, is writing
to the data files. This is still not recommended. |
UtilizeNtCaching |
REG_DWORD |
0 |
| Indicates whether
the redirector uses the cache manager to cache
the contents of files. Disable this parameter
only to guarantee that
all data is flushed to the server immediately
after it is written by the application. |
Client Settings for Windows
2000, XP, 2003 Acting as a Workstation or Client
To modify the settings for the Workstation service,
it is necessary to edit the registry, since Microsoft
does not provide any method of configuring these options
in their client setup. The registry key path is:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Services\LanmanWorkstation\Parameters
It will be necessary to add the following values as
they are listed below, with the proper data type
and the value listed (0 in all cases):
| Setting |
Data Type |
Should be |
| UseLockReadUnlock |
REG_DWORD |
0 |
Indicates whether the
redirector uses the lock-and-read and
write-and-unlock performance enhancements.
When this value is enabled, it generally provides
a significant
performance benefit. However, database applications
that lock
a range and don’t allow data within that range
to be read will
suffer performance degradation unless this parameter
is disabled. |
UtilizeNtCaching |
REG_DWORD |
0 |
| Indicates whether
the redirector uses the cache manager to cache
the contents of files. Disable this parameter
only to guarantee that
all data is flushed to the server immediately
after it is written by the application. |
Opportunistic locking is controlled differently in
the newer versions of Windows than was done in Windows
NT. The following registry key path is the location
of the desired entry and that must be present and set
to the associated value.
HKEY_LOCAL_MACHINE\System\CurrentControlSet\
Services\MRXSmb\Parameters
| Setting |
Data Type |
Should be |
OplocksDisabled |
REG_DWORD |
1 |
| The OplocksDisabled registry value
configures Windows clients to either request or
not request opportunistic locks on a remote file. |
|
|
Additional Notes for NT Workstation, Windows 2000, XP, and Vista
In addition to the possible changes required on the client settings,
NT-based client machines have a special change that is required. This is because
the NTVDM in these machines appears to represent remote drives as if they were
local (at least to the Win16 subsystem). That causes Superbase to
open all files in a special mode known as LOCAL. You can see this
immediately if you open a file for RW/RW access interactively on
a remote drive. In the title bar will be something like: "Superbase
- F:\myfile.sbf (L0)". The L0 is an immediate giveaway that
LOCAL mode is in use. In this mode Superbase opens all files exclusively,
regardless of the requested open mode. To stop Superbase from opening
the files exclusively on NT-based operating systems, add the environment variable
SBLOCAL with the value NONE to the environment settings. This can
be found in the System applet of the Control Panel on the Environment
tab. Alternatively, you can place the entry in the SB30.INI file
in the Superbase section:
[Superbase]
sblocal=none
It is also possible to use Superbase.LocalFileLocking = False in
the Superbase program, but this setting should be made before any
files are opened and should never be changed once the program is
running.
The above information was compiled in part using the articles listed
below, all of which are copyright Microsoft Corporation.
WFW 3.11 Clients Hang Accessing Windows NT Server
Last reviewed: August 8, 2001
Article ID: Q123029
Some Client Applications Fail When Writing to WindowsNT
Last reviewed: August 8, 2001
Article ID: Q124916
PC Ext: Explanation of Opportunistic Locking on WindowsNT
Last reviewed: August 8, 2001
Article ID: Q129202
REG: Workstation Service Entries
Last reviewed: February 28, 2002
Article ID: Q102981
REG: Server Service Entries, PART 1
Last reviewed: August 6, 2002
Article ID: Q102967
REG: Server Service Entries, PART 2
Last reviewed: February 27, 2002
Article ID: Q102969
How to Disable Network Redirector File Caching
Last reviewed: June 11, 2002
Article ID: Q163401
Configuring Opportunistic Locking in Windows
Last reviewed: March 14, 2003
Article ID: Q296264
This page was last reviewed/modified on
|