Btrieve Workstation Engine for Windows NT/Windows 95 v6.15 Ultimate Patch February 2009 ================================================================ Contents ================================================================ 1. General Information 2. Installation Information 3. Setup and Configuration Information 4. Files List 5. Fixes Addressed 6. Change Requests Addressed 7. 16-Bit to 32-Bit Windows Application Support 8. Known Issues 9. Disclaimer ================================================================ 1. General Information ================================================================ The Btrieve v6.15 products are no longer supported by Pervasive Software Inc. Technical and reference material pertaining to that release has been removed from the Pervasive Software Web site. Therefore, a final update patch is being provided for the Btrieve for Windows NT/Windows 95 Workstation Engine v6.15. This patch is referred to as the Btrieve for Windows NT/Windows 95 Workstation Engine v6.15 Ultimate Patch. (Hereafter, in this readme, "Ultimate Patch.") The Ultimate Patch is available by request from Pervasive Software and is for the Workstation Engine only. It contains no patch files for the Server Engine, Pervasive clients, or utilities. Also note that the Ultimate Patch is provided on an "as is" basis. See section 9, Disclaimer, in this readme file. The Ultimate Patch was tested on Windows 2000 Professional, Windows 2000 Server, and Windows 98 SE. Regression and stress testing was conducted, and the utilities were verified that they function correctly with the patched engine. ================================================================ 2. Installation Information ================================================================ The Ultimate Patch must be applied, at a minimum, to a base installation of Windows NT/Windows 95 Workstation Engine v6.15. The Ultimate Patch can also be applied to a base installation plus any previous patches or FTFs (field test files) that have been added to the base installation. INSTALLING THE ULTIMATE PATCH USING THE INSTALLATION EXECUTABLE 1. Ensure that the machine on which you are running the Ultimate Patch has, at a minimum, the base installation of Windows NT/Windows 95 Workstation Engine v6.15. 2. Ensure that you are logged on as member of the Administrators user group. 3. Stop any of the Windows NT/Windows 95 Workstation Engine v6.15 utilities if they are running. 4. Stop the Workstation Engine if it is running. For example, click MicroKernel --> Exit in the Workstation Engine GUI. 5. Run the installation wizard executable provided from Pervasive Software and complete all steps. 6. To verify that the wizard installed the files, view the installation log file. The installation wizard writes a log file to the "temp" folder for the logged-on user. For example, if you are logged on as "User1," the log file is located under C:\Documents and Settings\User1\Local Settings\Temp. The log file uses a naming convention of "Setup Log #.txt." For example, the log first created on February 1, 2009 would be named "Setup Log 2009-02-01 #001.txt." The log file contains the names of the files it installed or attempted to install. If the log contains the string "Successfully installed the file," then the patch installed the file to which the string applies. Search the log file for that string to determine if the files were installed. INSTALLING THE ULTIMATE PATCH BY COPYING FILES MANUALLY Note: You must apply the patch on a computer to extract the files that you will then copy to other machines. The computer requires, at a minimum, a base installation of Windows NT/Windows 95 Workstation Engine v6.15 1. On one machine, complete the steps above for "Installing the Ultimate Patch Using the Wizard Executable." 2. In the Windows system folder of that machine, select the following files: W32MKDE.exe W32MKRC.dll WBTRCALL.dll WBTRV32.dll WBTRTHNK.dll 3. Copy the files to the Windows system folder on the machines that have, at a minimum, the base installation of Windows NT/Windows 95 Workstation Engine v6.15. Depending on the operating system, the system folder is located at C:\Windows\System or C:\Winnt\System. ================================================================ 3. Setup and Configuration Information ================================================================ You can use the Setup utility to set up the MicroKernel Database Engine. Refer to the documentation provided with the base installation of Windows NT/ Windows 95 Workstation Engine v6.15. The Setup configuration option Cache Allocation has a default value of 512 KB. You may find that you get better performance with the Cache Allocation option set to 2048 KB or larger. If possible, set the cache size to the total size of all of the Btrieve files that will be accessed concurrently. ================================================================ 4. Files List ================================================================ The Ultimate Patch installs the following files to the Windows system folder: W32MKDE.exe W32MKRC.dll WBTRCALL.dll WBTRV32.dll WBTRTHNK.dll Depending on the operating system, the system folder is located at C:\Windows\System or C:\Winnt\System. This readme file is installed to the root of the C: drive. ================================================================ 5. Fixes Addressed ================================================================ The Ultimate Patch includes the following fixes. * Files located on a read-only device (such as a CD-ROM) or files marked as read-only by the operating system can now be opened in multi-engine file sharing (MEFS) mode without creating a .LCK file. In previous releases this could cause problems since .LCK files could not be created on a read-only device. * Problems have been corrected related to receiving status code 20 (MKDE or Btrieve requester is inactive) when an application makes the first Btrieve call from a fast machine. The WBTRV32.DLL 32-bit interface requester now retries to load the MKDE several times before returning a status code 20. The default number of retries is 5, but you can change this number by using the Windows Registry Editor to change the value of the following key: HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\MicroKernel Workstation Engine\Version 6.15\ \Settings\Load Retries. * Several problems have been corrected related to using forward slashes ('/') in file path name specifications (for example, server/volume:\dir1\file.btr). Prior to this patch, the WBTRV32.DLL 32-bit interface could either reject certain Btrieve operations with a status 12 (MKDE cannot find specified file) or, in some cases, generate a general protection fault. * An attempt to create a file on a NetWare file server with a file name containing more than 8 characters now returns a status code 25 (specified file cannot be created). Previously, the MKDE returned status 2 (I/O error). * A special registry key is now available to avoid status code 81 (lock error) problems in peer-to-peer environments. The MKDE uses temporary files to control access between multiple engines. The temporary files are created with the data filename extension replaced with a .LCK extension. On some peer-to-peer networks, deleting the .LCK file in multi-engine sharing causes the application to receive status code 81. To avoid this problem, use the Windows Registry Editor to change the value of the following key to 0 (the default value is 1): HKEY_LOCAL_MACHINE\SOFTWARE\Btrieve Technologies\ MicroKernel Workstation Engine\Version 6.15\Settings\Delete Tmp Files. Setting this key to 0 instructs the MKDE to not delete temporary files in multi-engine file sharing (MEFS) mode. * Other workstations wait until a file recovery is complete instead of returning an error. In previous versions, if more than one workstation attempted a file recovery against a remote file, one of the workstations successfully opened the preimage file, while the other workstations received a status code 14 (Preimage Open Error). * Problems were fixed pertaining to lock and unlock operations. When an application performs several GET actions with explicit Lock operations on a record that has just been updated, the MKDE applies multiple locks against the same record before the system transaction completes the update operation. The extra locks were not released even if an explicit Unlock operation is executed, causing another application to receive status 84 when it attempts to read the same record. * In some situations, the MKDE did not correctly distinguish between explicit and implicit record locks. This could also result in an application receiving status 84 when it attempts to read locked records. * Changing some settings can increase performance if your application executes a high degree of concurrent updates in a peer-to-peer environment using the multi-engine file sharing option. You can realize performance improvement by setting Operation Bundle Limit to 1 and by setting Initiation Time Limit to 1. Use the MicroKernel Setup Utility to change the settings. These settings cause the engine to release file locks on any read or write operation, thus allowing other workstations quicker access to the same file or files. However, changing the settings from their defaults will degrade performance for applications that conduct bulk read/write operations in a single user mode. ================================================================ 6. Change Requests Addressed ================================================================ * Issue 9901 FTF When Update Chunk (53) is followed by Get Next Extended (36), record positioning is lost and and the Get Next Extended returns a Status 64 * Issue 11975 FTF Status 85 lost by I/O thread before it can be picked up by worker thread * Issue 13249 FTF Status 82 on GetNext after NCC Update * Issue 14722 FTF Get Direct after a Failed Update/Insert returns a status 81 * Issue 7217 FTF Btrieve returns a status 20 when a Btrieve application in placed in the Windows NT startup group ================================================================ 7. 16-Bit to 32-Bit Windows Application Support ================================================================ To access a Btrieve Workstation Engine for Windows NT/Windows 95 from a 16-bit Windows application, you must have the following files in your path: WBTRCALL.DLL (Windows Requester) WBTRTHNK.DLL (16-bit to 32-bit Thunker) WBTRV32.DLL (MicroKernel Interface) WBTRVRES.DLL (Resource) You must also add the path for your Btrieve installation to the path in the System environment variables setting in the Control Panel. To activate 16-bit Windows to 32-bit support, ensure that the Thunk parameter is set to its default value of Yes in the BTI.INI file, Btrieve Engine [Btrieve] section. The thunk entry activates 16-bit Windows to 32-bit support. Use this parameter to use the Windows NT/Windows 95 MicroKernel Interface (WBTRV32.DLL) to access Btrieve for Windows NT/Windows 95 from a 16-bit Windows application. For 16-bit Windows applications, use WBTRCALL.DLL, the dynamic link library that functions as an interface to the workstation database engine. WBTRCALL.DLL provides thunking, via WBTRTHNK.DLL to WBTRV32.DLL, which handles the request as it would from a Windows NT or Windows 95 application. If the Thunk entry is set to Yes, all requests are sent to this interface, regardless of the settings for the Local and Requester options. You cannot set the Thunk entry from the Setup utility. To change this entry, edit the BTI.INI file using a text editor. Range : [Yes | No] Default : Yes ================================================================ 8. Known Issues ================================================================ The Ultimate Patch has no known issues. ================================================================= 9. Disclaimer ================================================================= Pervasive Software Inc. licenses the Btrieve Workstation Engine for Windows NT/Windows 95 v6.15 Ultimate Patch to you or your company solely on an "as is" basis. Pervasive Software Inc. makes no other warranties whatsoever, either express or implied, regarding the software or this readme file. 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 2009, Pervasive Software Inc. All Rights Reserved Worldwide