Can not open PRODUCTS.DAT or other BTRIEVE database
(Last modified: 19Nov2004)
This document (10080845) is provided subject to the disclaimer at the end of this document.
symptom
Can't open PRODUCTS.DAT or other BTRIEVE databases
BTRIEVE-6.1-27: "The transaction control file cannot be created"
Error: "NWMKDE-58: The file LAST_SEG.LOG cannot be opened in the log segment directory SYS:SYSTEM\MKDE\LOGS."
Error:"Operation aborted because SYS:\SYSTEM\PRODUCTS.DAT could not be accessed. Press ESC to continue." This message is shown through NWConfig when you go to |Product Options|View/Configure/Remove installed Products
Error: Can't save BTRIEVE application data or settings
MKDE.NLM allocating 50+ megs of memory at startup
CPUHog Abend on Btrieve MKDE.NLM
Abnormal NLM Termination in NW386 BTRIEVE Record Manager
cause
The SYS:\SYSTEM\PRODUCTS.DAT, BTRIEVE.TRN or the SHARFIL.DAT are flagged as read only or they are corrupted.
There is not enough memory to load BTRIEVE.NLM or open the database.
BTRIEVE is not set up to handle enough open files.
When an application makes a change to the BTRIEVE configuration file (BTI.CFG) it will first create a database lock file (BTI.LCK). Some times the file does not get deleted after the changes are done which can cause the database to grow.
SYS:SYSTEM\MKDE\LOGS\LAST_SEG.LOG cannot be opened
fix
Flag the PRODUCTS.DAT, SHARFIL.DAT and BTRIEVE.TRN files as R/W or rename them and allow them to be recreated automatically
Delete the SYS:\SYSTEM\BTI.LCK lock file if you see MKDE.NLM allocating large amounts of memory on startup
Rename the PRODUCTS.DAT file. Now go to NWConfig|Product Options|View/Configure/Remove installed Products. This causes a new PRODUCTS.DAT to be created. If you are not presented with an error then you know that the database was corrupted and you now have a new database to populate.
Alternatively you can transfer the PRODUCTS.DAT from another "vanilla" server and replace the current one in SYS:\SYSTEM\. Now the destination server will be populated with the same applications entries as the source server.
You will want to del or add entries to the PRODUCTS.DAT file to reflect this servers installed products.
Entries can be deleted from the PRODUCTS.DAT by issuing the "uinstall" console command. e.g. " uinstall spack" this command would remove the spack entry from the database.
Entries can be added to the PRODUCTS.DAT by creating an .IPS file populated with the application information and then installing it through NWConfig.
@SyntaxVersion 1.03
;This script will install an entry to PRODUCTS.DAT
Command ICMD
ProductRecord spack, 0, "5.0.2"
ProductRecord spack, 1, "v2.0 Support Pack for NetWare 5"
Display 1, "Edits to PRODUCTS.DAT file are complete.\n\n Please unload NWCONFIG.NLM before installing anything else."
This example would add the spack entry to the PRODUCTS.DAT and then display a message telling you to reload NWConfig before installing anything else.
The BTRIEVE is transactional and its transaction file can become corrupted. This can be fixed by unloading BTRIEVE.NLM, delete or rename the BTRIEVE.TRN file, and reload BTRIEVE.NLM. A new BTRIEVE.TRN will be recreated.
Install more memory or unload unnecessary NLMs to free up additional memory
Since the load on BTRIEVE had increased over time, the threshold for the number of filehandles within BTRIEVE can be hit. This can be fixed by loading BSetup, choose Available Options, select Set Configuration, and then change the # of Open Files to the desired number or make the change to the BTI.CFG file as shown below.
Rename SYS:SYSTEM\MKDE\LOGS\LAST_SEG.LOG to LAST_SEG.OLD and reboot the server. It will create a new LAST_SEG.LOG
On NetWare 5.x, if none of the previous steps fixed the problem then install the latest version of BTRIEVE from Pervasive. These files are actually bundled in NetWare 5 Support Pack 5 in the TOOLS\PERVASIV directory. To install the new version run the INSTALL.BAT in the PERVASIV directory from a workstation.
On NetWare 6.x,
Make sure that the following directories exist, if they do not exist, create them.
SYS:SYSTEM/MKDE/LOG
SYS:SYSTEM/MKDE
Rename or delete the SYS:\PVSW directory
Rename or delete the following files in SYS:\SYSTEM
BSPX*.NLM ( BSPXCOM.NLM , BSPXSTUB.NLM )
BTC*.NLM ( BTCPCOM.NLM )
BTRIEVE.NLM
NWMKDE*.NLM ( NWMKDE.NLM )
NWODBC*.NLM
NWUCMGR.* ( NWUCMGR.NLM , NWUCMGR.SYS )
UCMGR.KEY
Find a server with same OS and patch level which does not have the problem and copy the entire SYS:\PVSW and above mentioned files to your problem server.
Rename the current BTI.CFG and replace it with one that is standard. Below is a copy of a typical
BTI.CFG. This BTI.CFG would have to be edited to reflect the parameters needed by your applications.
[Database Names]
DBNamesDirectory=SYS:SYSTEM
[MicroKernel]
MaxFiles=50
MaxCursors=200
BalancedTrees=NO
ForceFileVersion=0700
SystemData=YES
MaxDatabases=10
Logging=NO
CacheSize=52351
CompressedBufferSize=5
ExtendedBufferSize=16
MergeSortBufferSize=0
MaxRecSize=16
TransDurability=YES
TransLogBufferSize=64
TransLogFileSize=512
SysTransBundleLimit=1000
SysTransTimeLimit=10000
MaxClients=30
BackgroundThreads=4
WaitLockTimeout=30
TransLogDirectory=SYS:SYSTEM\MKDE\LOG
WorkDirectory=
Trace=NO
TraceFile=SYS:SYSTEM\MKDE.TRA
TraceDataBufferLength=32
TraceKeyBufferLength=32
TraceOpsList=ALL
LoadRouter=NO
RouterCommBufferSize=16
RuntimeServerSupportMode=0000
[BTRIEVE Interface]
Embedded Spaces=NO
[BTRIEVE Communications Manager]
MaxWorkerThreads=3
MaxRecSize=16384
MaxClients=15
MaxReceivePacketSize=1500
Use SAP=AUTODETECT
Supported Protocols=SPX,TCPIP
NOTE: If you edit the BTI.CFG use notepad or DOS edit. Some word processors put in unprintable characters.
document
Document Title: | Can not open PRODUCTS.DAT or other BTRIEVE database |
Document ID: | 10080845 |
Solution ID: | NOVL87617 |
Creation Date: | 06Mar2003 |
Modified Date: | 19Nov2004 |
Novell Product Class: | NetWare |
disclaimer
The Origin of this information may be internal or external to Novell. Novell makes all reasonable efforts to verify this information. However, the information provided in this document is for your information only. Novell makes no explicit or implied claims to the validity of this information.
Any trademarks referenced in this document are the property of their respective owners. Consult your product manuals for complete trademark information.