Skip to content

PSQL and Distributed File System (DFS)

People have asked if Elliott will work with the Distributed File System (DFS).  The answer seems to be inconsistent.  We have seen users that use Elliott on DFS without any issues, and we've also seen the opposite. The main culprit is PSQL, where you will receive a Btrieve error when it does not work. So far, we have not been able to clearly identify the situation criteria under which DFS volume will work with PSQL, and under what scenario it will not. Pervasive's official position is that PSQL does not support 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.

Feedback and Knowledge Base