Troubleshooting Status 20 errors
"The MicroKernal or Btrieve Requester is inactive"
Problem Environment Pervasive SQL 2000 or Pervasive SQL v7 / 8 / 10
Cause of the problem
Incorrect version of WBTRCALL.DLL or WBTRV32.DLL
Changes affecting the problem Upgrading to Pervasive SQL from an earlier version of Btrieve. Since Pervasive SQL Windows’s (both 16-bit and 32-bit) requesters are not coded for Status 20 errors, a Status 20 from a Windows application almost always indicates an older requester. To find the requester causing the error, the user must first determine whether the application being used is 16-bit or 32-bit. Should that information be unavailable, it is acceptable to check for both versions of the requester.
Why does this error occur?
The previous versions of Btrieve used the WBTRCALL.DLL and WBTRV32.DLL as the entry points to Btrieve from an application.
In Pervasive.SQL this is not the case. The DLLs must be available to the application for backward compatibility however they are not longer the main DLLs and are now called "compatibility DLLs."
In simple terms, the compatibility DLLs make themselves known to the application and pass the call along to the new "glue DLL" which is W3BTRV7.DLL. The older DLLs are not aware of the new components and therefore cannot connect to a communication (now called NSL) or resource DLL. This makes it impossible for them to find an engine, which then gives the error Status 20 - The Microkernel or Btrieve requester is inactive.
Use the following procedure to solve a status 20 error:
1.Launch the Windows application and duplicate the Status 20.
2.Leaving the Status 20 on the screen, run the appropriate Smart Scout (16-bit for a 16-bit application, 32-bit for a 32-bit application.). To run Smart Scout execute the SSCOUT32.EXE in the C:PVSWBIN folder or click on Start...Run, enter SSCOUT32.EXE and click OK.
3.Select the Components tab.
4.Click the Configure button.
5.Click the Select All button.
7.The two requesters which will cause a Status 20 are:
8.In the list of the Smart Scout components, locate the appropriate DLL.
If WBTRCALL.DLL is not 30,782 bytes, make a note of its location. WBTRCALL.DLL may be larger or smaller than 30,782 bytes. Either version is inappropriate and may yield a Status 20.
If WBTRV32.DLL is not 42,496 bytes, make a note of its location. Any WBTRV32.DLL which is larger than 42,496 bytes may yield a Status 20.
9.Close Smart Scout and the application. Rename the incorrectly sized DLLs (that is the WBTRCALL.OLD or WBTRV32.OLD.) You can use the Pervasive System Analyzer to Analyze and Archive the selected files.
10.Restart the application.