PSQL and Distributed File System (DFS)
The following is a scenario in which PSQL does not work due to DFS. We received a support call from a user who wished to transfer Elliott to a new server. The new server was set up with DFS volume where Elliott's folder resides. When starting up Elliott V7, the user got the following message:
Btrieve Error 30xx on SYSPASS.BTR
Btrieve Error 30xx is an error number between 3000 - 3099, which indicates this MicroKernel Router Status Codes. MicroKernel is just another name for Btrieve.
SYSPASS.BTR is the first Btrieve file that Elliott opens. The fact that you receive an error on this file indicates that it is a PSQL issue, instead of some kind of application failure in Elliott. After investigating this issue further with Pervasive engineers, they declared the reason is because Elliott resides on a DFS volume which is not supported by PSQL.
One interesting thing in this diagnosis process is that we noticed if we use the following command in command prompt, it will work correctly without any error:
BUTIL -STAT SYSPASS.BTR
So it looks like the PSQL client can communicate with the engine and receive information on a Btrieve file, right?
However, we located the BUTIL.EXE programs in the PSQL\Bin folder (the actual path depends on your installation) and copied that EXE to the Elliott folder, then tried the same command form M:\Elliott7 (where M:\Elliott7 is the mapped drive and path where Elliott resides):
BUTIL -STAT SYSPASS.BTR
In this case, we got exactly the same Btrieve error 30xx as when Elliott starts up. The difference between the first and second scenarios is that in the first scenario, the BUTIL was executed from the local path on a volume that does not have DFS enabled. In the second scenario, the BUTIL is executed from the Elliott folder, which resides on the DFS volume. But in any case, Pervasive engineers did not want to pursue this matter any further because their official position is that DFS volume is not supported by PSQL.