Pervasive logo

Prev Status Codes and Messages Next

1 to 199


MicroKernel Database Engine Status Codes

This section describes status codes that the MicroKernel returns.

1: The operation parameter is invalid

The specified operation does not exist or is not valid.

2: The application encountered an I/O error

This status code typically indicates a corrupt file, an error while reading from or writing to the disk. One of the following has occurred:


Note
Please see our Pervasive.SQL Knowledge Base for new and updated articles on troubleshooting this status code. You can access the Knowledge Base at: http://support.pervasive.com/kb/.

3: The file is not open

The operation cannot execute because the file is not open. The application must perform a successful Open operation before the MicroKernel can process any other operations. The MicroKernel also returns this status code if the application passed an invalid position block for the file, or if the application passed a position block with a client ID other than the client ID used to open the file.


Note
Please see our Pervasive.SQL Knowledge Base for new and updated articles on troubleshooting this status code. You can access the Knowledge Base at: http://support.pervasive.com/kb/.

4: The application cannot find the key value

The MicroKernel cannot find the specified key value in the index path.

5: The record has a key field containing a duplicate key value

The MicroKernel cannot add or update a record because the record has a key field that contains a duplicate key value for an index that does not allow duplicate values. The MicroKernel also returns this status code when it cannot create an index that does not allow duplicate key values because a duplicate key value already exists.

6: The key number parameter is invalid

The value stored in the key number parameter is not valid for the file being accessed. The key number must correspond to one of the keys defined for the file. Valid key numbers are 0 through 118.

7: The key number has changed

The key number parameter changed before a Get Next, Get Next Extended, Get Previous, or Get Previous Extended operation. The operation requires the same key number parameter as the previous operation, because the MicroKernel uses positioning information relative to the previous key number.

In a related situation, the MicroKernel returns this status code when an application performs a Delete or Update operation immediately following a Get operation. If the application changes the value of the key number in the Delete or Update operation (from the value used with the preceding Get operation), the MicroKernel deletes or updates the record as requested and does not return this status code, at least not at this point. However, the MicroKernel does return this status code on the very first Get Next, Get Next Extended, Get Previous, or Get Previous Extended operation performed after the deletion or update, even if that Get operation uses the same key value the application passed to the Delete or Update operation.

If you need to change key numbers between consecutive Get Next, Get Next Extended, Get Previous, or Get Previous Extended operations (or in Delete or Update operations as described in the preceding paragraph), use a Get Position operation followed by a Get Direct/Record operation to reestablish positioning for the new index path.

8: The current positioning is invalid

You must establish the current position in order to update or delete a record. Perform a Get or Step operation to establish the current position. The MicroKernel also returns this status code if the application passed an invalid position block for the file.

9: The operation encountered the end-of-file

The MicroKernel returns this status code in the following situations:


Note
Please see our Pervasive.SQL Knowledge Base for new and updated articles on Btrieve ActiveX Controls. You can access the Knowledge Base at: http://support.pervasive.com/kb/.

10: The key field is not modifiable

During an Update operation, the application attempted to modify a key field that is cannot be modified by definition.

11: The specified filename is invalid

The MicroKernel returns this status code in the following situations:

12: The MicroKernel cannot find the specified file

This does not occur with NetWare 5.

Novell has a fix for this problem in a file named Mixmod6.exe. Search for file at Novell's web site (http://www.novell.com).

BUTIL -CREATE <outputFile> <descriptionFile>

Since MKDE manipulates the <outputFile> Btrieve data file, it can have a long name. However, the <descriptionFile> can only have a short name (such as BUTIL.NLM) since it does not accept long names. The solution is to enable "Embedded Spaces".

To enable Embedded Spaces in Pervasive.SQL v7 Service Pack 3 +:

  1. Choose Start | Run.
  2. Type Regedit and click OK. The Registry Editor opens.
  3. Browse to HKL_Machine | Software | Pervasive Software | Btrieve Requester | Version 7 | Settings:Embedded Spaces
  4. Select Yes.
  5. Exit the configuration utility and restart the engines for the new settings to take effect.

To Enable Embedded Spaces in Pervasive.SQL 2000i:

  1. Click Start | Programs | Pervasive | Pervasive Control Center.
  2. Expand Pervasive.SQL 2000i Engines and expand the desired database.
  3. Expand Configuration, then expand Client, and click on Application Characteristics.
  4. In the right hand frame, double-click on Embedded Spaces.
  5. Select On.
  6. Exit the configuration utility and restart the engines for the new settings to take effect.

13: The MicroKernel could not open the extension file for an extended file

The MicroKernel could not open the extension file for an extended file that the application tried to open. An extended file can consist of a base file and up to 31 extension files. Extension files must remain in the same volume and directory as their base files. The MicroKernel returns this status code if you delete, move, or rename the extension files.

14: The MicroKernel cannot create or open the pre-image file

The MicroKernel uses pre-image files only for pre-v6.0 data files.

The MicroKernel returns this status code in one of the following situations:

15: The application encountered an I/O error during pre-imaging

The MicroKernel uses pre-image files only for pre-v6.0 data files.

16: The application encountered an expansion error

This status code is obsolete in MicroKernel versions 6.0 and later.

The MicroKernel encountered an error while writing the directory structure to disk prior to creating the expanded file partition. Either the MicroKernel cannot close the file, or a new page was added to the file and the MicroKernel cannot close and reopen the file to update the directory structure. Check for a disk hardware failure.

18: The disk is full

The MicroKernel can return this status code in the following situations:

19: The application encountered an unrecoverable error

To ensure file integrity, recover the file as described in the Pervasive.SQL User's Guide.

20: The MicroKernel or Btrieve Requester is inactive


Note
For an expanded list of possible recovery solutions, consult the Pervasive.SQL Knowledge Base at http://support.pervasive.com/kbpsql/.

Pervasive.SQL 2000i installs BTRBOX95 by default. As long as this is installed no other requester can be used.

  1. Run the BTRBOX95.exe. A minimized dialog box appears, indicating that BTRBOX95 support is active. If you close this dialog box, it will unload BTRBOX95. You only need to run BTRBOX95.exe once even though you have multiple DOS sessions open.
  2. Open a command prompt and run your DOS Btrieve application.
  3. If you are operating in a NetWare environment:
    • Make sure the Microkernel and (if applicable) the Btrieve Requester are loaded before generating any requests.
    • Make sure the appropriate communication modules are loaded at the server.
  4. If you are operating in a Windows NT server environment:
    • Make sure the MicroKernel is started before generating any requests.
    • Make sure the Windows NT DLLs are in your path.
    • Make sure the appropriate communications modules are loaded at the server.

21: The key buffer parameter is too short

The key buffer parameter is not long enough to accommodate the key field for the requested index path. Verify that the length of the key buffer equals the defined length of the key specified in the key number parameter.

22: The data buffer parameter is too short

23: The position block parameter is not 128 bytes long

This status code is obsolete in Btrieve language interface versions 6.0 and later.

The position block parameter must be exactly 128 bytes long.

24: The page size or data buffer size is invalid

The MicroKernel returns this status code in one of the following situations:

25: The application cannot create the specified file

The MicroKernel returns this status code in one of the following situations:


Note
This happens when the Operating system returns an unusual status code to the engine. Normally, the engine expects either a success or the file already exists. In one situation, the error code was being returned because the file handle that the engine was using was not functional; however, the OS call that the engine makes is supposed to return a file handle.

One solution is to disable the Antivirus software. Contact the third party vendor for additional information on configuring the Antivirus software to eliminate scanning specific data files.

26: The number of keys specified is invalid

The number of keys specified for the page size is invalid. The number of key segments must be within the following limits:

 
Table 1-6 Maximum Number of Key Segments

Page Size
512
1024
1536
2048
2560
3072
3584
4096
Maximum Number Key Segments
8
23
24
54
54
54
54
119

If the MicroKernel is configured to create files in v5.x format, the maximum number of key segments is 8 for files using 512 byte page sizes; the maximum number of key segments for all other v5.x files is 24.

For a key-only file, this status code is also returned if the number of keys specified is not one, or the available linked keys is not zero (only one key is allowed for a key-only file.)

Pervasive.SQL 2000i nullable columns: Because each indexed nullable column with true null support requires an index consisting of 2 segments, you cannot have more than 59 indexed nullable columns in a table (or indexed nullable true null fields in a Btrieve file). This limit is smaller for smaller page sizes (1/2 the values noted above, rounded down). Any file created with Pervasive.SQL 2000i, with file create mode set to 7.x, and TRUENULLCREATE set to the default value of On, has true null support. Files created using an earlier file format, or with Pervasive.SQL 7, or with TRUENULLCREATE set to Off, do not have true null support and do not have this limitation.

27: The key position is invalid

The specified key field position is less than 1 or exceeds the defined record length for the file. Either the key position is greater than the record length or the key position plus the key length exceeds the record length.

28: The record length is invalid

The specified record length (plus overhead for duplicates, record usage count, variable record pointers, key pointers, and blank truncation information) must be less than or equal to the page size minus 6 bytes, and greater than or equal to 6 bytes.

A program may define variable length portions of a record. These variable length portions are not restricted to remain on any one page in memory.

Thus, if a record length is needing to be 5000 bytes:

OR

OR

29: The key length is invalid

The MicroKernel returns this status code in one of the following situations:

30: The file specified is not a MicroKernel file

This status code is returned in one of the following situations:

NOTE: Previously, accessing a 6.x file with a 5.x engine returned Status 2: "the application encountered an I/O error"

31: The file is already extended

This status code is obsolete in MicroKernel versions 6.0 and later.

An application tried to extend a file that had already been extended; you can only extend a file once.

32: The file cannot be extended

The MicroKernel must create an extension file to accommodate a file which is growing larger than the operating system file size limit. However the MicroKernel encounters an error from the operating system when it tries to create and open the new extension file. Possible causes for receiving this status code include the following: the directory is full, the disk is full, or the MicroKernel has not been granted sufficient rights by the operating system.

33: The MicroKernel cannot unload

In the DOS environment, The MicroKernel returns this status code for the following reasons:

34: The specified extension name is invalid

This status code is obsolete in MicroKernel versions 6.0 and later.

An application specified an invalid filename for the extended partition. Check the validity of the filename.

35: The application encountered a directory error

Either a Get Directory operation specified a drive that does not exist, or a Set Directory operation specified an invalid pathname. Check the validity of both the drive and the pathname.

37: Another transaction is active

The application issued a Begin Transaction (19 or 1019) operation while another transaction was active by the same user or task; the active transaction can be nested or non-nested. This status code often indicates a problem in nested transactions within your application.

38: The MicroKernel encountered a transaction control file I/O error

This status code is obsolete in MicroKernel versions 7.0 and later.

The MicroKernel tried to write to the transaction control file. Possible causes for receiving this status code are that the disk is full, the disk is write protected, the transaction control file (BTRIEVE.TRN) that is created when you load the MicroKernel has been deleted, or the transaction control file is flagged read-only or is corrupt.

39: A Begin Transaction operation must precede an End/Abort Transaction operation

The application issued an End Transaction (20),or Abort Transaction (21) operation without a corresponding Begin Transaction (19 or 1019) operation. Make sure that each End or Abort Transaction operation in your program is executed only after a successful Begin Transaction operation.

40: The file access request exceeds the maximum number of files allowed

This status code is obsolete in MicroKernel versions 6.0 and later.

The application tried to access more than the maximum number of files allowed within a transaction. You set the maximum number of different files that you can access during a logical transaction when you configure the MicroKernel.

41: The MicroKernel does not allow the attempted operation

The MicroKernel returns this status code for the following reasons:

The MicroKernel prohibits certain operations during transactions because they have too great an effect on the file or on performance. These operations include Set Owner, Clear Owner, Create Index, and Drop Index.

42: A file previously opened in Accelerated mode was not closed

This status code is obsolete in MicroKernel versions 6.0 and later.

The MicroKernel returns this status code for the following reasons:

43: The specified record address is invalid

The MicroKernel returns this status code for the following reasons:

44: The specified key path is invalid

The application tried to use the Get Direct/Record operation to establish positioning on an index path for a key whose value is null in the corresponding record. The MicroKernel cannot establish positioning based on a null key value.

45: The specified key flags are invalid

The key flags specification on a Create operation is inconsistent. If a key has multiple segments, the duplicate, modifiable, and null attributes should be the same for each segment in the key. Also, you cannot use the null or manual key attributes in a key-only file. The MicroKernel also returns this status code if the application attempted to specify a different Alternate Collating Sequence (ACS) for two or more segments of a segmented key.

46: Access to the requested file is denied

The MicroKernel returns this status code for the following reasons:

47: The number of files opened exceeds the maximum allowed

This status code is obsolete in MicroKernel versions 6.0 and later.

Pre-v6.0 workstation MicroKernels return this status code when the number of files opened in Accelerated mode exceeded the number of buffers available in the MicroKernel cache. When a file is opened in Accelerated mode, the MicroKernel reserves one of its cache buffers for the file. It always reserves five empty buffers for index manipulation. Reconfigure Btrieve with both a smaller /P configuration option (to allocate more buffers) and a larger /M option (to increase the cache allocation).

48: The alternate collating sequence definition is invalid

The MicroKernel returns this status code for the following reasons:

49: The extended key type is invalid

The MicroKernel returns this status code for the following reasons:

OR

To increase the Create File Version setting:

  1. Click Start | Programs | Pervasive | Pervasive Control Center.
  2. Expand Pervasive.SQL 2000i Engines and expand the desired database.
  3. Expand Configuration, then expand Server, and click on Compatibility.
  4. In the right hand frame, double-click on Create File Version.
  5. Adjust Current with a higher file version.
  6. Exit the configuration utility and restart the engines for the new settings to take effect.

50: The file owner is already set

The application tried to perform a Set Owner operation on a file that already has an owner. Use the Clear Owner operation to remove the previous owner before specifying a new one.

51: The owner name is invalid

The MicroKernel returns this status code for the following reasons:

52: An error occurred while writing to the cache

This status code is obsolete in MicroKernel versions 6.0 and later.

While trying to make a cache buffer available, the MicroKernel attempted to write data to a disk from a file that was previously opened in Accelerated mode. The operating system returned an I/O error during the write. This generally indicates a hardware memory problem. Unload and reload Btrieve before you continue.

53: The language interface version is invalid

An application tried to access a file containing variable-length records with a language interface from Btrieve v3.15 or earlier.

54: The variable-length portion of the record is corrupt

During a Get or Step operation, the MicroKernel could not read all or part of the variable-length portion of a record. The MicroKernel returns as much data as possible to the application. This status code usually indicates that one or more pages used to store variable-length records are corrupt. Check the data buffer length the MicroKernel returns to see how much of the record was returned. Recover the damaged file as described in the Pervasive.SQL User's Guide.

55: The application specified an invalid attribute for an AUTOINCREMENT key

The data field indexed by an AUTOINCREMENT key can be part of a different segmented key only if the key number of the AUTOINCREMENT key is less than the key number of the new segmented key and the new data type flag referencing the field is not AUTOINCREMENT

56: An index is incomplete

An index can be damaged if a Create Index operation (31) or a Drop Index operation (32) is interrupted before it runs to completion. Perform a Drop Index operation to completely remove the damaged index from the file, then rebuild the index with the Create Index operation, if desired.

57: An expanded memory error occurred

This status code is obsolete in MicroKernel versions 6.0 and later.

Btrieve for DOS returns this status code if it receives an error from the Expanded Memory Manager. This status code usually means that the MicroKernel was unable to save or restore the memory mapping register context, indicating an incompatibility with another application that uses expanded memory.

58: The compression buffer length is too short

This status code is obsolete in Pervasive.SQL 2000i.

59: The specified file already exists

During a Create operation, the application specified -1 in the key number parameter and the name of an existing file in the key buffer parameter. To overwrite the existing file, remove the -1 from the key number parameter. To preserve the existing file, alter the filename specified in the key buffer parameter.

60: The specified reject count has been reached

The MicroKernel rejected the number of records specified by the reject count before a Get Next Extended, Get Previous Extended, Step Next Extended, or Step Previous Extended operation found the requested number of records that satisfy the filtering condition. Check the first two bytes returned in the data buffer for the number of records that were retrieved.

61: The work space is too small

The Get Next Extended, Get Previous Extended, Step Next Extended, and Step Previous Extended operations use a buffer as work space. This status code indicates that the work space (set by default to 16 KB) is not large enough to hold the filtering data buffer structure and the largest record to be received. You will receive Status Code 0 if the work space is large enough to hold the filter/extraction expression and enough of the record to include all of the fields to be filtered or extracted.

62: The descriptor is incorrect

This status code is returned in the following situations:

63: The data buffer parameter specified on an Insert Extended operation is invalid

An Insert Extended operation provided an invalid buffer. Either the buffer length is less than 5 bytes, or the number of records specified is 0. Correct the buffer length or the number of records.

64: The filter limit has been reached

The MicroKernel returns this status code for the following reasons:

65: The field offset is incorrect

The field offset in the extractor of a Get Next Extended, Get Previous Extended, Step Next Extended, or Step Previous Extended operation is invalid based on the length of the retrieved record. Make sure that the field offset is a valid value (from 0 through the record length minus 1).

66: The maximum number of open databases has been exceeded

This status code is obsolete in Pervasive.SQL 2000i.

The MicroKernel tried to open files bound to too many MicroKernel databases. To avoid receiving this status code, you must set a higher value for the number of databases that the MicroKernel can open.

To increase the value for Maximum Databases:

  1. Click Start | Programs | Pervasive | Pervasive Control Center.
  2. Expand Pervasive.SQL 2000i Engines and expand the desired database.
  3. Expand Configuration, then expand Server, and click on Access.
  4. In the right hand frame, double-click on Maximum Databases.
  5. Increase Current to accommodate the number of databases you want the MicroKernel to be able to open at one time. (Note: The MicroKernel requires approximately 800 bytes of memory for each open database.)
  6. Exit the configuration utility and restart the engines for the new settings to take effect.

Refer to the Pervasive.SQL Advanced Operations Guide for more information about bound files.

67: The MicroKernel cannot open the SQL data dictionary files

The MicroKernel returns this status code for the following reasons:

If the data file has RI definitions, the DBNAMES.CFG file must be in the location specified in the DBNames Configuration Location option in the server configuration settings. Also, ensure that FILE.DDF and RELATE.DDF (if the file has RI definitions) are in the locations specified by the Working Directory option in the server configuration settings.

68: The MicroKernel cannot perform the RI Delete Cascade operation

The MicroKernel cannot enforce the Delete Cascade rule on a file under RI control because the record that the application attempted to delete has more than 16 levels of descendants. Delete records from the lower levels, and then try again to delete the record that the application was attempting to delete initially. Refer to the Pervasive.SQL Advanced Operations Guide for more information about RI.

69: The Delete operation specified a file that is damaged

The application encountered an error while the MicroKernel was attempting to enforce the Delete Cascade rule in response to a Delete operation. This status code indicates that the related file has been damaged and must be recreated. Refer to the Pervasive.SQL Advanced Operations Guide for more information about RI and the Delete Cascade rule.

71: There is a violation of the RI definitions

72: The MicroKernel cannot open the RI referenced file

The referenced file cannot be found at the location specified by FILE.DDF and DBNAMES.CFG. Be sure that the referenced file is in one of the data file locations that the DBNAMES.CFG file specifies for the named database.

Refer to the Pervasive.SQL Advanced Operations Guide for more information about RI.

73: The RI definition is out of sync

The MicroKernel returns this status code for the following reasons:


Note
The same named database can not exist on two servers on the same network. So, if the intent is to move the dictionaries to another server on the same network, one way would be to delete the named database on the old server before creating the same named database on the new server.

Check the RI constraints on your database. For information about how to do this, refer to the Pervasive.SQL User's Guide.

74: The MicroKernel aborted the transaction

This status code is obsolete in MicroKernel versions 6.0 and later.

This is an informative status code. A NetWare-based MicroKernel replaced an End Transaction operation with an Abort Transaction operation after detecting an error for a Transaction Tracking System (TTS) file inside the transaction. The MicroKernel then executed the Abort Transaction operation.

76: There is a conflict on the referenced file

An application attempted to perform an Update, Insert, or Delete operation on an RI-controlled file that references another file. The application cannot open the referenced file for RI checking because it is already open in Exclusive mode. Wait until the referenced file is closed or is opened in a mode other than Exclusive, and then retry the operation. Refer to the Pervasive.SQL Advanced Operations Guide for more information about RI.

77: The application encountered a wait error

This status code is obsolete in MicroKernel versions 7.0 and later.

This is an informative status code. You must retry the operation yourself; the MicroKernel does not automatically retry the operation. A client/server MicroKernel returns this status code in one of the following situations:

When you are using the Btrieve Requester to access the MicroKernel, the Requester waits and retries if a requested resource is locked. When a server-based application is accessing the MicroKernel and the requested resource is locked, a wait is also required. In this case, the MicroKernel is expected to perform the wait. Because this would occupy the MicroKernel and lock out other users who might be trying to release the requested resource, the MicroKernel does not perform the wait. Instead, it returns this status code, and the server-based application must retry later.

78: The MicroKernel detected a deadlock condition

The application should clear all resources by aborting, ending the transaction, or releasing all record locks before proceeding. This breaks the deadlock, allowing other applications to access the resources for which they are waiting.

79: A programming error occurred

This status code is obsolete in MicroKernel versions 7.0 and later.

There is a malfunction that the MicroKernel cannot specifically detect or from which the MicroKernel cannot recover. Retry the operation. If the error persists, there may be system corruption; try to clear the system by rebooting, and then try the operation again.

80: The MicroKernel encountered a record-level conflict

The MicroKernel did not perform the Update or Delete operation because of a record-level conflict. For example, station A reads a record, station B reads the same record and updates it, and then station A attempts to update the record. The application should reread the record prior to resending an Update or Delete operation. Alternatively, the application can employ record locks to avoid conflicts.

In key-only files, you receive this status code if the record is moved in the file b-tree after being read and before being updated or deleted. A record can move as a result of other records being inserted, updated, or deleted.

81: The MicroKernel encountered a lock error

The MicroKernel returns this status code in one of the following situations:

82: The MicroKernel lost positioning

When performing a Get Next or Get Previous operation on a key with duplicates, the application tried to retrieve a record that was deleted or whose key value was modified by another application. Use a Get Equal or a Get Direct/Record operation to re-establish positioning. (See Status Code "44: The specified key path is invalid" for a related positioning problem.)

83: The MicroKernel attempted to update or delete a record that was read outside the transaction

This status code is obsolete in MicroKernel versions 7.0 and later.

The application tried to update or delete a record within a transaction, but it did not read the record within the transaction. The application must read the record within the transaction before attempting to modify the data.

84: The record or page is locked

The application can use either of the following recovery methods:

85: The file is locked

The MicroKernel returns this status code in one of the following situations:

86: The file table is full

This status code is obsolete in Pervasive.SQL 2000i. This setting is managed dynamically by the engine.

The number of different files that the MicroKernel can open at the same time has reached its maximum limit. To avoid receiving this status code, increase the value for the Maximum Open Files configuration option.

To adjust the value for Maximum Open Files:

  1. Click Start | Programs | Pervasive | Pervasive Control Center.
  2. Expand Pervasive.SQL 2000i Engines and expand the desired database.
  3. Expand Configuration, then expand Server, and click on Access.
  4. In the right hand frame, double-click on Maximum Open Files.
  5. Increase Current to increase the number of different files the MicroKernel can open at one time. (Note: The default is 10000 files and the maximum is 64000 files.)
  6. Exit the configuration utility and restart the engines for the new settings to take effect.

87: The handle table is full

This status code is obsolete in Pervasive.SQL 2000i. This setting is managed dynamically by the engine.

You have either attempted to open more handles than the MicroKernel is configured to support, or the MicroKernel attempted to open more files than the operating system allows.

To configure the MicroKernel to allow more handles:

  1. Click Start | Programs | Pervasive | Pervasive Control Center.
  2. Expand Pervasive.SQL 2000i Engines and expand the desired database.
  3. Expand Configuration, then expand Server, and click on Access.
  4. In the right hand frame, double-click on Logical File Handles.
  5. Increase Current to accommodate your request. (Note: The default is 100000 file handles.)
  6. Exit the configuration utility and restart the engines for the new settings to take effect.
  7. To configure your operating system to allow more handles, refer to your operating system documentation.

It is helpful to know the following details regarding the MicroKernel requirements for handles from the operating system. When the same file is opened multiple times, the MicroKernel uses only one operating system handle. However, if the file is in v6.x or later format and the file is shared via MEFS mode, the MicroKernel opens a second handle for the associated .LCK file.

If the file is in v5.x format, the MicroKernel might request a second handle, for the .PRE file. Also, if the file (in any format) is placed in Continuous Operation mode, the MicroKernel requests another handle for the delta file. If the file is extended, the MicroKernel requests an operating system handle for each of the extension files.

NOTE: default value is 20.

88: The application encountered an incompatible mode error

The MicroKernel returns this status code in one of the following situations:

89: A name error occurred

This status code is obsolete in MicroKernel versions 5.0 and later.

BSERVER was loaded before you specified the short name to which the device was redirected. You must specify all short names that you want to share with the NET SHARE command before you start BSERVER.

90: The redirected device table is full

This status code is obsolete in MicroKernel versions 6.0 and later.

The DOS Requester redirection table or server routing table is full. This occurs if you attach to additional servers or map additional drives after loading the Requester. Reload the Requester, specifying a larger value for either the Number of File Servers (/S) option or the Number of Mapped Drives (/R) option. This status code also occurs if you detach from a server and attach to a different server. Once a client has attached to a server, the Requester does not remove its name from the server routing table.

For a list of all available BRequest commands, type /? at the command line.

91: The application encountered a server error


Note
Please see our Pervasive.SQL Knowledge Base for new and updated articles on troubleshooting this status code. You can access the Knowledge Base at: http://support.pervasive.com/kb/.

The MicroKernel returns this status code in one of the following situations:

To increase the Number of Sessions:

  1. Click Start | Programs | Pervasive | Pervasive Control Center.
  2. Expand Pervasive.SQL 2000i Engines and expand the desired database.
  3. Expand Configuration, then expand Server, and click on Access.
  4. In the right hand frame, double-click on Number of Sessions.
  5. Increase Current to allow more sessions. (Note: The default is 1000 sessions; approximately 32 kilobytes of memory are required for each session.)
  6. Exit the configuration utility and restart the engines for the new settings to take effect.
  7. An application specified a path for a file and did not include the volume name in the path.
  8. The MicroKernel Router has not been loaded, and the following situation has occurred: an application that uses both the MicroKernel Router and the MicroKernel to make remote calls (and which therefore includes the server and volume name when performing an Open operation) has attempted to open a remote file. Because the MicroKernel Router does not interpret the server name, the MicroKernel attempts to do so but cannot.
  9. A communication or network addressing problem exists in your network environment, so the MicroKernel requests never reach their destination server address. Ensure that your client and server network components are up to date and certified for your network environment.
  10. There is a conflict using the DOS BREQNT requester with the SPX protocol. To resolve this error:
    1. Change directories to \pvsw\clients\dos\windosbox and run the setup utility. This loads the appropriate file for clients running Windows 9x or Windows NT. The setup program creates and places a README.TXT file in the \pvsw\W32DOXBOX directory.
    2. After installation, reboot the client.
    3. For Windows NT users: open a command prompt and run a DOS Btrieve application.
    4. For Windows 9x users:
  11. Run the BTRBOX95.exe. A minimized dialog box appears, indicating that BTRBOX95 support is active. If you close this dialog box, it will unload BTRBOX95. You only need to run BTRBOX95.exe once even though you have multiple DOS sessions open.
  12. Open a command prompt and run your DOS Btrieve application.
  13. For NetWare servers only:
    • The Maximum Packet Receive Size configuration option is inappropriate for your environment. For example, the setting should be 1500 for an Ethernet LAN or 4096 for a Token-Ring LAN.

To adjust the Maximum Packet Receive Size:

  1. Open the sys:system/BTI.CFG file.
  2. Locate the Btreive Communications Manager option.
  3. Ensure that the Maximum Packet Receive Size value is appropriate for your environment.

NetWare users may also receive this status code in the following situations:

92: The transaction table is full

This status code is obsolete in MicroKernel versions 7.0 and later.

The application exceeded the maximum number of active transactions. Use the configuration utility to specify a higher value for the Number of Transactions configuration option.

93: The record lock types are incompatible

The application tried to mix single-record locks (+100/+200) and multiple-record locks (+300/+400) in the same file at the same time. You must release all locks of one type before you can execute a lock of the other type.

94: The application encountered a permission error

The MicroKernel returns this status code in the following situations:

95: The session is no longer valid


Note
Please see our Pervasive.SQL Knowledge Base for new and updated articles on troubleshooting this status code. You can access the Knowledge Base at: http://support.pervasive.com/kb/.

The server MicroKernel returns this status code for one of the following reasons:

If you are using the SPX protocol:

To increase the Number of Sessions:

  1. Click Start | Programs | Pervasive | Pervasive Control Center.
  2. Expand Pervasive.SQL 2000i Engines and expand the desired database.
  3. Expand Configuration, then expand Server, and click on Access.
  4. In the right hand frame, double-click on Number of Sessions.
  5. Increase Current to allow more sessions. (Note: The default is 1000 sessions; approximately 32 kilobytes of memory are required for each session.)
  6. Exit the configuration utility and restart the engines for the new settings to take effect.
  7. This may be a time delay problem if the client machine does not receive a response back from the server in an appropriate time frame or after an appropriate number of retries. Refer to your network configuration documentation for information about increasing timeout and retry parameters. This is often necessary in a WAN environment or a LAN configuration with heavy network traffic.
  8. For NetWare servers:
    • Verify that the Maximum Packet Receive Size configuration option is appropriate for your environment. For example, the setting should be 1500 for an Ethernet LAN.

To adjust the Maximum Packet Receive Size:

  1. Open the sys:system/BTI.CFG file.
  2. Locate the Btreive Communications Manager option.
  3. Ensure that the Maximum Packet Receive Size value is appropriate for your environment.
    • Ensure that the SPX timeout parameters are set as follows in both the client machine NET.CFG file and the server SPXCONFG.NLM file:
      SPX VERIFY TIMEOUT=54 
      SPX LISTEN TIMEOUT=108 
      SPX ABORT TIMEOUT=540 
      

These three values must have a 1:2:10 ratio. You can increase these values to at most three times the default. If you continue to receive this status code after increasing these values, the problem is most likely not related to these settings.

If you continue to receive this status code after increasing the network timeout parameters, this status code usually indicates a problem with network communications. Verify that you have up to date network cards and drivers; for example, incompatible LAN card drivers can also cause this status code to occur. Consult your LAN administrator for network communication troubleshooting.

HKEY_Local_Machine | System | CurrentControlSet |
Services | NwLnkIpx | <Network Card> | NetworkNumber = <Non-Zero Value>

  1. ADD the following registry entry:

HKEY_Local_Machine | System | CurrentControlSet |
Services | LanManServer | Parameters | MinClientBufferSize regdword = 500 decimal.

96: A communications environment error occurred

The MicroKernel returns this status code for the following reasons:

To increase the Number of Sessions:

  1. Click Start | Programs | Pervasive | Pervasive Control Center.
  2. Expand Pervasive.SQL 2000i Engines and expand the desired database.
  3. Expand Configuration, then expand Server, and click on Access.
  4. In the right hand frame, double-click on Number of Sessions.
  5. Increase Current to allow more sessions. (Note: The default is 1000 sessions; approximately 32 kilobytes of memory are required for each session.)
  6. Exit the configuration utility and restart the engines for the new settings to take effect.
  7. An application that calls the MicroKernel can return this status code if the DBNAMES.CFG file contains a named database definition specifying a data location on a different server.
  8. You may also receive this status code in an environment with multiple servers with Btrieve running on them. When doing a Begin Transaction using BREQUEST 6.15, the requester checks its list of all known attached Btrieve file servers. Then it attempts to create an SPX session so that it can check the server to see if it is configured for transactions. This implies that all the servers have to be configured for at least the same number of remote sessions as well as being configured for the same number of transactions.

97: The data buffer is too small

The application either tried to read or write a record that is longer than the current allowed settings for the MicroKernel or the Btrieve Requester, as follows:

To increase the Communication Buffer Size:

  1. Click Start | Programs | Pervasive | Pervasive Control Center.
  2. Expand Pervasive.SQL 2000i Engines and expand the desired database.
  3. Expand Configuration, then expand Server, and click on Communication Buffer Size.
  4. In the right hand frame, double-click on Communication Buffer Size.
  5. Increase Current. (Note: The maximum value is 65153KB.)
  6. Exit the configuration utility and restart the engines for the new settings to take effect.
  7. DOS Requesters only: Reload the Btrieve Requester and specify a higher value for the message buffer size. This is done using the
    /D parameter which is documented in Getting Started with Pervasive.SQL.
  8. For Windows NT servers, verify that the Maximum Packet Size registry setting is 576 decimal or 240h. The path to the MaxPktSize registry setting is HKEY_LOCAL_MACHINE\System\currentControlSet\
    Services\NwInkIPX\NetConfig\MaxPktSize.

For more information about configuring the message buffer size, refer to the Pervasive.SQL Advanced Operations Guide.

98: The MicroKernel detected an internal transaction error

For MicroKernel v6.0 and earlier: a NetWare-based MicroKernel detected an error while executing the operation on a NetWare Transaction Tracking System (TTS) file. The application can perform only an Abort Transaction operation at this point.

99: The Btrieve Requester is unable to access the NetWare Runtime server

This status codes is returned in the following situations:

NOTE: The "SatEntry" is a line that resembles "SatEntry1=xxxxxxx-01,2,3"

100: No cache buffers are available

This indicates that the MicroKernel has used all the cache buffers it allocated at load time. The common approach to this problem is to increase Cache Allocation in the configuration options and then reload the MicroKernel.

To increase Cache Allocation:

  1. Click Start | Programs | Pervasive | Pervasive Control Center.
  2. Expand Pervasive.SQL 2000i Engines and expand the desired database.
  3. Expand Configuration, then expand Server, and click on Performance Tuning.
  4. In the right hand frame, double-click on Cache Allocation Size.
  5. Increase Current by entering Kilobytes of memory to allocate cache. Note: The default is 1024KB (= 1MB).
  6. Exit the configuration utility and restart the engines for the new settings to take effect.

101: Insufficient operating system memory is available

This indicates that there is not enough operating system memory available to perform the requested operation. To fix this problem, perform one or more of the following:

For more information, see Status Code "1002: A memory allocation error occurred" , a similar status code that the Windows-based MicroKernel returns in the same situation.

102: Insufficient stack space is available

This indicates that the MicroKernel has run out of stack space. To increase the amount of stack space available to your application, re-link the application, setting the stack size to a higher value. The MicroKernel returns this status code only to Windows-based applications that call WBTRCALL.DLL, or applications that call the Btrieve interface on the local server.

103: The chunk offset is too big

The MicroKernel returns this status code in one of the following situations:

104: The MicroKernel does not recognize the locale

During a Create or Create Index operation, the operating system was not able to return a collation table for the country ID and code page specified. Ensure that the application specified the locale's country ID and code page correctly and that the operating system is configured to support the country ID and code page.

105: The file cannot be created with Variable-tail Allocation Tables (V