Btrieve Error Codes 3000 - 3099
MicroKernel Router Status Codes
This section lists the status codes you can receive from the MicroKernel router, which receives requests from the Btrieve requesters and routes them to the correct version of the MicroKernel.
3000: The MicroKernel router encountered a memory allocation error
The MicroKernel router could not internally allocate memory. Check the Pervasive Event Log (PVSW.LOG) for more information.
3001: Local access is unavailable to the MicroKernel router
A call to the MicroKernel failed. This is most likely the result of an incorrect configuration. For example, if the MicroKernel is unavailable because of configuration settings and the file to be opened is local, then the MicroKernel router returns this status code.
3002: The MicroKernel router resource DLL is unavailable
The MicroKernel resource DLL is either missing or incompatible with the current version of the router. If this happens, the MicroKernel reverts to its default settings and continues to run. Check the Pervasive Event Log (PVSW.LOG) for more information.
3003: The MicroKernel router detected an incompatible network component
The networking services component is not compatible with this version of the MicroKernel router. The most likely cause is that the Networking services DLL has been replaced by an older version. Check the Pervasive Event Log (PVSW.LOG) for more information.
3004: The MicroKernel is not responding to the MicroKernel router
The MicroKernel is not responding to requests from the MicroKernel router. Verify that the MicroKernel is running.
3005: The MicroKernel router encountered an operating system error
The MicroKernel router encountered an unexpected error from the operating system, such as a shared memory failure. Check the Pervasive Event Log (PVSW.LOG) for more information.
3006: The MicroKernel router detected an invalid session
The session information contained in a position block is invalid. This status code occurs for one of the following reasons:
- The application is trying to use a position block for a file that resides on an engine and for which the connection has been previously terminated via a B_STOP (25) or B_RESET (28) operation.
- The application is trying to use a position block for a file that resides on a remote server and that encountered an abnormal network error on a previous operation.
- When using only the NetBIOS protocol with a remote Workgroup engine, the client is sending more bytes than can fit into the engine's network read buffer. Go the machine where the remote Workgroup engine is installed, and try increasing the value of the configuration parameter, Server4Communication Buffer Size4Read Buffer Size.
3008: Invalid configuration for MicroKernel router
This status code results from an invalid configuration. For example, if both client configuration options, Access4Use Local MicroKernel Engine and Access4Use Remote MicroKernel Engine are set to Off, the router has no valid path to take. If this situation occurs, set at least one of these options to On, depending on whether you are using a local engine, a remote Server engine, or both.
3009: NETinterface.DLL is not loaded
The MicroKernel router could not find NETAPI.DLL.
3012: Local engine is not accessible to the MicroKernel router
Access to the local engine is not possible because it is not loaded or could not be launched. You can receive this status code if you try to access a local file on a client and you do not have a Workgroup engine installed or if you try to access a local file on a server and the Server engine is not running.
If you have only a server engine installed and your Pervasive Event Log (PVSW.LOG) contains Status Code 3012 warning entries, perform the following steps:
To Turn Off Local Engine support (for clients and workstations only):
- Start Pervasive PSQL Control Center (see "Starting PCC on Windows" on page 3-3 in Pervasive PSQL User's Guide).
- Expand Local Client. Right-click MicroKernel Router and select Properties. Login if prompted.
- Click Access.
- In the right hand frame, change the value of Use Local MicroKernel Engine to Off.
- In the right-hand frame, change the value of Use Remote MicroKernel Engine to On. Click OK.
- Restart the engines for the new settings to take effect.
3013: The remote engine is inaccessible to the MicroKernel router because the networking component is not loaded
Access to the remote engine is not possible because the MicroKernel router could not initialize the networking component. Possible causes include:
- The client configuration option, Access4Use Remote MicroKernel Engine, is incorrectly set to Off. Set it to On to access a remote Server engine.
- The required networking component could not be found or is not compatible.
3014: The MicroKernel router cannot find an engine
The MicroKernel router could not complete the operation because it did not find an engine (local or remote) that could process the operation. Possible causes include:
- The target network operating system is not available.
- The target engine is not available.
- In a Windows 3.x environment, you are using a shared drive name that contains a space. To resolve the condition, remove the space from the shared drive name. For example, if you connect to a server named "D Drive", change the share name to "D_Drive".
3015: The MicroKernel router encountered an initialization error
An unexpected error occurred during the initialization of the MicroKernel router. Check the Pervasive Event Log (PVSW.LOG) for more information.
3016: The MicroKernel router encountered an internal error
The MicroKernel router encountered an internal error. Check the Pervasive Event Log (PVSW.LOG) for more information.
3017: Data buffer of the local engine is too small
The requester has more data to send the MicroKernel than the MicroKernel buffers can handle. This status code is only relevant to an engine running locally and does not apply to client/server environments. Some possible solutions include:
- Specify higher values for Communications Buffer Size (see "Configuration Reference" on page 4-1 in Advanced Operations Guide.
- Use smaller buffers in your operations.
3018: The file is already closed
The MicroKernel router is shut down and is not accepting any more requests.
3019: The MicroKernel router encountered a semaphore error
A semaphore error occurred while trying to establish contact with the local engine. Check the Pervasive Event Log (PVSW.LOG) for more information.
3020: An error occurred while loading the MicroKernel
You receive this status code when an error occurs while loading the MicroKernel or when access to the server and client machine shared memory objects are unavailable. Check the Pervasive Event Log (PVSW.LOG) for more information.
3021: The MicroKernel router received a badly formatted data packet
The MicroKernel router rejected the response from the engine because it was badly formatted.Check the Pervasive Event Log (PVSW.LOG) for more information.
3022: The MicroKernel router could not send the request to the remote engine because the specified data buffer length resulted in a data packet object that is too large
A request to the MicroKernel router specified a data buffer length that resulted in a data packet size greater than 64 KB, which is the maximum. This can occur even if the data buffer length for the request is smaller than 64 KB because the MicroKernel router adds some packet overhead as it forms the data packet. Check the Pervasive Event Log (PVSW.LOG) for more information.
3030: Remote access not allowed
This code is returned if the path is remote, the client configuration setting for Use Local MicroKernel Engine has been set to Off, and either:
- the key number on the open request indicates 'local only'; OR
- the configuration setting for Use Remote MicroKernel Engine is set to Off.
3031: Linux requester cannot connect to this server
This code is returned if a Pervasive PSQL Linux requester attempts to connect to a Pervasive.SQL 2000 server that has Service Pack 2a or earlier, or a Pervasive.SQL V8 server without Service Pack 1.
- To use the Linux requester to connect to a Pervasive.SQL 2000 server, you must have a special update that is available at http://www.pervasive.com/support/updates/index.asp
- To use the Linux requester to connect to a Pervasive.SQL V8 server, you must have Service Pack 1 or higher which is available for download at http://www.pervasive.com/support/updates/index.asp
3032: Failed to initialize shared memory to local engine
This status code results if a second user attempts to access another user's database engine through the transactional interface. The application is unable to connect to the local engine. Possibly a database engine has been started by another user on the machine in a non-elevated mode. If so, other users will not be able to connect to that engine.
One situation in which this status code may result is if a user starts the Workgroup Engine or Cache Engine in a Terminal Services session or by switching users through fast-user switching. Other users on the system cannot access that engine nor can they start their own copy of the engine. To allow multiple users access to a Workgroup Engine or Cache Engine in a Terminal Services session or through fast-user switching, start that engine as a service instead of as an executable.
The Btrieve Status Code Listing, incorporated in this Documentation, has been provided with the written permission of Pervasive Software Inc.
EMK