          Btrieve for NetWare v6.15.431 Server Edition
                      Product Update
                      September 1996
                        README.TXT

==============================================================
Contents
========
 1. File Listing
 2. Updating Your Product
 3. Changes and Enhancements
 4. Known Problems
 5. Customer Support
 6. Product Updates
 7. Disclaimer

Btrieve Technologies, Inc. has changed its name to Pervasive
Software Inc. effective July 1, 1996.  The name change reflects
the company's expanding role as a leading supplier of database
technology designed to bring client/server computing to the
mass market.

===============================================================
 1. File Listing
================

The following files are included in this update:

  PATBTRNW.BAT
  V6155.RTP
  V61510.RTP
  V61520.RTP
  V61550.RTP
  V615100.RTP
  V615U.RTP
  BTRREQNW.RTP
  BTRNW.EXE
  PATCH.EXE
  README.TXT

===============================================================
 2. Updating Your Product
=========================

This section explains how to update your existing Btrieve
product to the latest version.  This update will bring your
existing Btrieve product up to date with the most recent changes
and additions for this product.

   IMPORTANT: Be sure to back up your existing Btrieve
              components before installing this update.

Here is a list of files that will be either updated or replaced.  For
all files that are updated, a valid copy of the file must exist or
the update will fail.

 SYSTEM directory
   BTRIEVE.NLM    Updated
   BSPXCOM.NLM    Updated
   BROUTER.NLM    Replaced
   BDROUTER.NLM   Replaced

 WIN\BIN directory
   WBTICOMM.DLL   Updated
   WBTRCALL.DLL   Replaced
   WBTRVRES.DLL   Replaced
   DBU_UI.DLL     Replaced

 OS2\BIN directory
   BTICOMM.DLL    Updated
   BTRCALLS.DLL   Replaced
   OS2NWBRQ.DLL   Replaced
   MKDELINK.DLL   Replaced
   MKDESVCS.DLL   Replaced

 WIN32\BIN directory
   NTBTICOM.DLL   Replaced with W32BTICM.DLL
   W32BTICM.DLL   Updated
   WBTRTHNK.DLL   Replaced
   WBTRV32.DLL    Replaced
   W16NR.DLL      Replaced
   W32NR.DLL      Replaced

 DOS\BIN directory
   BREQUEST.EXE   Replaced
   BREQUEST.MSG   Replaced
   BREQNT.EXE     Replaced
   BREQNT.MSG     Replaced


Note:  If you have not downloaded the Btrieve Requester update from
September, 1995, you may not have a copy of W32BTICM.DLL. In this
case, this update will add this component to your WIN32\BIN directory.

Except for the files in the WIN32\BIN directory, all of the files
to be updated must exist in the directory specified above.
The next table lists the expected file size and date stamps for
all files to be updated.  For BTRIEVE.NLM and BSPXCOM.NLM, be sure
that you have one of the following executables installed in the
directory where the patch update will be applied.

    File Name                Size     Date     Time
    ---------                ----     ----     ----
    BTRIEVE.NLM (5 User)    220,636   3/10/95   7:38p  v6.15.2
    BTRIEVE.NLM (10 User)   220,637   3/10/95   7:26p  v6.15.2
    BTRIEVE.NLM (20 User)   220,637   3/10/95   7:26p  v6.15.2
    BTRIEVE.NLM (50 User)   220,637   3/10/95   7:26p  v6.15.2
    BTRIEVE.NLM (100 User)  220,638   3/10/95   7:26p  v6.15.2
    BTRIEVE.NLM (Unlimited) 220,664   3/10/95   7:25p  v6.15.2

    BTRIEVE.NLM (5 User)    221,286   6/21/95   2:19p  v6.15.525
    BTRIEVE.NLM (10 User)   221,287   6/21/95   2:19p  v6.15.525
    BTRIEVE.NLM (20 User)   221,287   6/21/95   2:19p  v6.15.525
    BTRIEVE.NLM (50 User)   221,287   6/21/95   2:20p  v6.15.525
    BTRIEVE.NLM (100 User)  221,288   6/21/95   2:20p  v6.15.525
    BTRIEVE.NLM (Unlimited) 221,314   6/21/95   2:18p  v6.15.525

    BTRIEVE.NLM (5 User)    221,635  12/11/95  10:24p  v6.15.1208
    BTRIEVE.NLM (10 User)   221,636  12/11/95  10:24p  v6.15.1208
    BTRIEVE.NLM (20 User)   221,636  12/11/95  10:24p  v6.15.1208
    BTRIEVE.NLM (50 User)   221,636  12/11/95  10:24p  v6.15.1208
    BTRIEVE.NLM (100 User)  221,637  12/11/95  10:24p  v6.15.1208
    BTRIEVE.NLM (Unlimited) 221,663  12/11/95  10:24p  v6.15.1208

    BSPXCOM.NLM              22,450   3/13/95   5:24p  v6.15
    BSPXCOM.NLM              22,448   5/30/95   4:15p  v6.15.525

    WBTICOMM.DLL              7,974   3/14/95   2:14p
    NTBTICOM.DLL             19,968   5/24/95   2:09p

This update checks the file's date stamp and file size to confirm
that it is updating the correct files.  This update will run
successfully if the components to be updated have the file date
stamp from the original installation or current upgrade available
on CompuServe.  Before updating your system, be sure that the
directories contain the files with size and date stamp as identified
above and that they exist in the directories specified above.

If you have received other updates from Pervasive Software to test
out fixes to problems, be sure to replace these copies with an
officially released version from the list above.   This patch update
process will attempt to update all of the engine files in a set.
If there is an error updating one of the files, the other updates are
also backed out.  This ensures that your executables are kept in a
consistent state before and after the patch update is complete.

                  --- IMPORTANT NOTE ---
In the initial Btrieve Requester for Windows NT release on CompuServe,
the files WBTRV32.DLL and NTBTICOM.DLL were installed into the
NT\BIN directory.  This patch update and all future releases
of this product will install these files into the WIN32\BIN directory.
Be sure to move these two files to the WIN32\BIN directory before
applying this update, so that both files are updated correctly.

The initial release also installed WBTRTHNK.DLL into the WIN directory.
This update installs a newer copy of this file into the WIN32\BIN
directory.  To be sure that you are using the most current copy of
this DLL, please remove the copy of WBTRTHNK.DLL from your WIN
directory after this update is successfully installed.


Steps for applying the Btrieve update
-------------------------------------

1. Copy BTRNW615.EXE (self extracting zip file) to the directory
containing a copy of the files to be updated on the NetWare file
server where the product was originally installed (i.e. \BTI\NETWARE).
Alternatively, you may create a PATCH directory and copy all of the
files to be updated into that directory.  However, the files to be
replaced will be replaced in the subdirectories of the current
directory as defined, above.

2.  Run BTRNW615.EXE to extract the batch and patch update files.

3.  Run PATBTRNW v615x where x is:

         5 to update a   5 user version of Btrieve
        10 to update a  10 user version of Btrieve
        20 to update a  20 user version of Btrieve
        50 to update a  50 user version of Btrieve
       100 to update a 100 user version of Btrieve
         u to update an unlimited user count

NOTE:  If you are not sure what the MicroKernel user count is,
load Btrieve and use the 'modules' command from the NetWare file
server console to display module information.  The user count
is displayed for the module BTRIEVE.NLM.

4.  After the batch file completes, check the output file for
the patch update status.  If you see status messages of the following
form:

error ept0036: Old File not found. However, a file of the same name was
               found. No update done since file contents do not match.

you have attempted to apply the patch update against an invalid
file.  Check to be sure that you have the files as listed in this
section above.

5.  After the patch update has been successfully applied, you
may delete all of the files listed in the File Listing section, above.
You may also delete the .LST file created during the patch update
process.

===============================================================
 3. Changes and Enhancements
============================

Following is a description of the critical changes that have
been made in this product update; only changes made after the
initial product release are listed. Changes marked with **
are changes made in this release.

Note: This patch replaces the Btrieve for NetWare v6.15.430 Server
Edition patch update. It specifically corrects a bug in the
BREQUEST.EXE and BREQNT.EXE DOS requesters which was causing NetWare
paths with \\server\volume:path syntax to be interpreted incorrectly.
This was resulting in an error status of 11, 12, or 20 being returned
by a Btrieve Open operation or, in some cases, causing an abnormal
termination to occur. No other components besides the DOS requesters
were changed from the v6.15.430 release.

**  When an application performs a GET with explicit LOCK operation on
a record that has just been updated, the MKDE may lock the record again
before the system transaction completes the update operation.  This
causes multiple locks to be applied against the same record.   These
extra locks are not released causing another application to receive
status 84 when it attempts to read the same record.  This problem is
fixed in this update.

** In some situations, the MKDE does not correctly distinguish between
explicit and implicit record locks.  This can also result in an
application receiving status 84 when it attempts to read records
with lock.  This problem is fixed in this update.

** When a Btrieve file is very large (approaching 4GB) and the server
abends during a transaction that causes the file to exceed the
4GB limit, the MicroKernel is unable to roll back the file when the
server is brought back up.  Instead, it causes the server to hang and
the file being rolled back is corrupted.  This problem is fixed in this
update.

** In prior versions of Btrieve v6.15, delta files reappeared after
Btrieve files which were backed up in continuous operation mode
are restored.  This update fixes this problem.

** The Btrieve operation, BEGIN TRANSACTION, causes the user count to be
incremented on servers where Btrieve is installed, but not used.   With
this update, the BEGIN TRANSACTION operation is no longer broadcast to
all servers by the Btrieve DOS Requester.

** The Btrieve DOS Requester causes erroneous status 11's when running
applications in a DOS Box under OS/2.  This problem is fixed in this
update.

**  From a Windows NT DOS session, the Btrieve DOS Requester returns
status 11 or 12 on an open operation.  This is only reproducible
if you have a preferred server set on your Windows NT
workstation/server when you login to Windows NT.  Status 11 occurs
when opening file in the working directory.  Status 12 occurs when
opening file using a relative path.  This update fixes this problem.

**  When running the Btrieve DOS Requester (BREQNT.EXE) from a Windows
95 or Windows NT DOS Box and you specify a Btrieve file using a drive
letter and the full pathname, the DOS Requester returns status 35.
This update fixes this problem.

** When using the Btrieve DOS Requester from a Windows for Workgroups
DOS box, the requester will occasionally return status 95.  This occurs
when using the Microsoft SPX driver in Windows for Workgroups.  This
problem is fixed in this update.

** This update of WBTRV32.DLL now supports the NetWare pathname
naming convention, in either of the two formats below:

  servername/volume:/path
  servername\volume:\path

Previously, it returned status 12 if you specified a volume name
followed by a colon.

**  The Btrieve DOS Requester now supports the BTRVID() function call.
To use this feature, you must load the Btrieve DOS Requester and
specify the /t value to set the number of concurrent clients that
will be accessing Btrieve via the BTRVID function call.  For example:

   BREQUEST /t:2

allows two concurrent clients access to Btrieve.

* Previous versions of BTRIEVE.NLM may have caused an abend
or hang when unloading.  Alternatively, users of BTRMON.NLM
may have experienced a hang (in BTRMON, not in other server
processes) when resetting a client.  These problems, which are
more likely to happen on heavily used servers, were caused by
BTRIEVE.NLM and are fixed in this update.

* In previous versions, when BUTIL's -ENDBU command is used
to take a set of files out of continuous operations mode,
network users connected to the server may have experienced a
timeout due to high server utilization.  This problem, caused
by BTRIEVE.NLM, is corrected in this update.

* In previous versions, when NLM applications called the
Create Index, Extended Step Next, or Extended Step Previous
APIs, BTRIEVE.NLM was likely to read, and possibly write, to
invalid memory locations. If the server was running NetWare 4,
this would cause an abend, depending on how the server's memory
protection was configured. This update corrects the problem.

* In previous versions, a certain pattern of corruption in a
file caused BTRIEVE.NLM to abend the server, after it correctly
returned a Status Code 30 to an attempt to open this corrupt
file.  The pattern of corruption is the value FF repeated in
the first four bytes of the second page in the file. This update
corrects the problem.

* In previous versions, if a client called BTRIEVE.NLM to
update a file while another client called to place that file
into continuous operations, both clients might experience a
hang.  This problem no longer occurs with this update.

* In previous versions, when BTRIEVE.NLM was configured to
allow 16,378 handles or more, Status Code 39 may have been
incorrectly returned, if there were two or more clients
simultaneously using transactions.  This update corrects
the problem.

* In previous versions you may have received the "Press Any
Key to Close Screen" message in BUTIL, and then the
application would terminate.  This prevented other
applications from loading on the server.  You now receive
the message "Press Any Key to Continue," which allows other
applications to load.

* A new command line option, /S, has been added to BUTIL.NLM
in this update. With this option, messages are not displayed
on the screen and you do not have to press any key to continue
before exiting.

* You no longer receive a Status Code 100, No Cache Buffers
Are Available, when using the BREBUILD utility, -M2 load
option, to rebuild a large Btrieve file with many indexes
defined. Customers rebuilding extremely large Btrieve files
with many duplicate values in the indexes may have encountered
this problem.

* You no longer receive a Status Code 88 when properly using
the Btrieve File Manager (BUTIL.NLM) ENDBU command to remove
files from continuous operations, if that file was put into
continuous operations using the BUTIL STARTBU command.

However, you receive Status Code 88 when your file server
crashes, or you use BSTOP to unload the MicroKernel during
continuous operation, and your first subsequent access to the
file following the crash or bstop is a BUTIL -ENDBU command.
The Status Code 88 occurs because when BUTIL issues the -ENDBU
command, it first calls the MicroKernel to open the file.
When the MicroKernel opens the file, it sees that the file
crashed during continuous operations. As a result, it rolls in
the delta file and removes the file from continuous operation.
BUTIL then issues the -ENDBU command to instruct the MicroKernel
to remove the file from continuous operations. Since the
MicroKernel already removed the file from continuous operations,
BUTIL returns a Status Code 88.

You can avoid this situation by not using the BUTIL -ENDBU
command to end continuous operations for a file left in
continuous operation when the engine was unloaded or the server
crashed. The MicroKernel handles removing these files from
continuous operation immediately upon opening the file.
Specifically, the MicroKernel rolls in the delta file and
eventually deletes it, though a considerable amount of time
may elapse. During this time, new updates to the file are
being written to the base file, not the delta. Do not, under
any circumstance, delete the delta file; the MKDE deletes it
when it is finished with the roll-in.

* You no longer experience server problems when using the Btrieve
File Manager Utility (BUTIL.NLM) STARTBU command to start
continuous operations on a large group of files in FILES.TXT
when one or more of the files does not exist.

* You no longer experience server problems after you reboot or
power off a workstation prior to resetting the Btrieve client for
the workstation. Previously, some users occasionally found that a
workstation reboot or power-down led to a server abend or server
hang.

* Customers using compressed records and indexes with linked
duplicates no longer experience memory leaks while deleting or
updating records in a transaction when more than one cursor was
active on the file.

* BSPXCOM and BROUTER no longer experience an abend if a
connection is dropped or lost unexpectedly under some
circumstances. BROUTER now returns a Status Code 91 or Status
Code 95 in this situation.

* You no longer experience problems with NLMs when BSPXCOM is
unloaded from the remote server immediately prior to an attempt
by BROUTER to access the remote server. Instead, you receive a
Status Code 91.

* Customers using the Create Index (31) operation during periods
of heavy system load no longer experience lost connections.

==========================================================================
 4. Known Problems
==================

* When you use the Roll Forward utility v6.10 or earlier with
Btrieve for NetWare v6.15 or later, you may receive a Status Code
1 or experience other problems. To avoid problems, use the Roll
Forward utility v6.15 or later.

* Customers with NetWare v4.10 servers unloading BDIRECT.NLM, or
any NLM that is using BDROUTER.NLM to access a file on a remote
server, may see messages indicating that the NLM did not release
all resources. This situation does not cause any problems because
the operating system releases the resources. However, Pervasive
Software is aware of the situation and is working on a solution.

================================================================
 5. Customer Support
====================

Pervasive Software Inc. provides Customer Support to assist you with
your Btrieve product.  Refer to your documentation for details and
contact information on Pervasive Software's Customer Support programs.

================================================================
 6. Product Updates
===================

Pervasive Software Inc. may periodically release product updates
for some of the components in this package.  These product
updates may provide new functionality, support new application
environments, or fix problems identified after product release.

These updates often address a specific problem that a particular
site experienced. This product is used in a very diverse set of
configurations worldwide. Updates may or may not be needed for
your particular installation. We recommend that you carefully
review the documentation included with the update prior to
installation of the update to determine if your application
requires it.  However, if you are experiencing problems with
this product, it is recommended that you try the latest update
to see if the problem has already been resolved before
contacting Pervasive Software Inc. Customer Support.

To determine if there is a product update available for this
package, check the Btrieve forum on CompuServe (GO BTRIEVE)
or the Customer Support section of the Pervasive Software Inc.
Web site (www.btrieve.com) for Product Update Information.
If an update is available, instructions for obtaining the
update are also provided.

=================================================================
 7. Disclaimer
==============

PERVASIVE SOFTWARE INC. LICENSES THE SOFTWARE AND DOCUMENTATION
PRODUCT TO YOU OR YOUR COMPANY SOLELY ON AN "AS IS" BASIS AND
SOLELY IN ACCORDANCE WITH THE TERMS AND CONDITIONS OF THE
ACCOMPANYING LICENSE AGREEMENT.  PERVASIVE SOFTWARE INC. MAKES
NO OTHER WARRANTIES WHATSOEVER, EITHER EXPRESS OR IMPLIED,
REGARDING THE SOFTWARE OR THE CONTENT OF THE DOCUMENTATION;
PERVASIVE SOFTWARE INC.  HEREBY EXPRESSLY STATES AND YOU OR
YOUR COMPANY ACKNOWLEDGES THAT PERVASIVE SOFTWARE INC.  DOES
NOT MAKE ANY WARRANTIES, INCLUDING, FOR EXAMPLE, WITH RESPECT TO
MERCHANTABILITY, TITLE, OR FITNESS FOR ANY PARTICULAR PURPOSE OR
ARISING FROM COURSE OF DEALING OR USAGE OF TRADE, AMONG OTHERS.

(c) Copyright 1982-1996, Pervasive Software Inc.
All Rights Reserved Worldwide

**End of README.TXT**
