A multi-user Advanced Accounting customer today reported that they could no longer "get into the software" following a power outage.
The user has a Pervasive client-server version on a system that we have long supported.
From a client PC, the user reported receiving a Pervasive 3106 status code. When we logged into a server (but not the “main” server” where the Pervasive engine is located) and running terminal services via remote desktop, we received a status code 3012 when trying to launch the accounting software, when it tried to open the first “Btrieve” data file which in this case was at the logon screen. (The software will initially launch without a Btrieve/Pervasive engine present since other files are first opened that do not require it.)
From the Pervasive documentation, causes of the 3106 and 3012 status codes are:
3106: The Pervasive Network Services Layer encountered a connection failure.
The Pervasive Network Services Layer was able to establish a transport connection at the client side, but the connection attempt at the target side failed.
One of the listed possible causes of a 3106 status code is:
The MicroKernel is not running on the server.
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.
When the server re-booted following the power outage, the Pervasive service had failed to automatically start and was indeed not running. Normally, Pervasive services are set to automatically load on start up. The client Pervasive services were running (either the client PC's didn't lose power or they started up normally on re-boot) but the main server engine was not, and so the initial cause of the 3106 and 3012 was not as obvious as in a situation where no services or engine was available at all.
Restarting the Pervasive service on the server resolved the issue.
Postscipt: In October of 2017, a user reported a situation where a client PC in a Pervasive workstation engine configuration suddenly receiving a file error 3106 when trying to load Advanced Accounting across their network. Their troubleshooting revealed that a recent McAfee anti-virus update had blocked previously open ports causing the Pervasive engine to no longer be able to communicate with the gateway PC/server as before. Pervasive uses by default port 3351 for its transactional engine and port 1583 for SQL/ODBC access (these ports can be reconfigured but rarely are). In the case of Advanced Accounting, or any Btrieve-based software, if port 3351 is blocked then the Btrieve interface communications will be blocked.
Telnet can be used to determine if the server/gateway PC or local PC is listening on port 3351 as follows:
telnet computername 3351
where computername is the name of the server/gateway or the local PC. On each PC of interest:
will show what ports are listening. Because the output will scroll by quickly, scroll the file by either adding a more option:
netstat -an | more
or redirect the results to text and and view in notepad, e.g.:
netstat -an > results.txt
In the results of that command you should open ports such as:
TCP 0.0.0.0:80 0.0.0.0:0 LISTENING
TCP 0.0.0.0:1583 0.0.0.0:0 LISTENING
TCP 0.0.0.0:3351 0.0.0.0:0 LISTENING