Btrieve Error 025 on COP Open Order by Salesman Report

Q - When I run COP -> Reports -> Open Order by Salesman Report, I receive Btrieve Error 025.  What causes this error? See sample screen below:

A - Typically this is caused by a work file usage conflict.  This means another user is in the middle of running the same report, which requires exclusive use of the COP Open Order By Salesman (CPOPNSLM) work file.  Then when your session tries to create the same work file, you will receive error 025. 

Just wait for the other user to finish his/her report and try again.  If you still can't run this report after waiting for an extensive period of time and you don't know who the other user is who is locking you out, you may use the following procedure to identify who is locking you out:

(1) Identify the name of the work file that has the conflict.
On the Elliott Btrieve Error screen above.  Click on the "Detail" button.  Then you will see the Database Activity Snapshot window show up.  Scroll to the end. You will see the entry has the Error 0025.  That is the physical name of the data file that has the conflict.  See sample screen below.

In this example, we see the name of the file that has the conflict is CPOPNSLM.

(2) Use PSQL Monitor Utility on server console to find the offending user.
Go to your Elliott (PSQL) Server, and bring up PSQL Montor.  This mostly can be done through:
    Start -> All Programs -> Pervasive -> PSQL (version) -> Utilities -> Monitor; or
    Start -> All Programs -> Actian PSQL 12 -> Utilties -> PSQL Monitor

In PSQL Monitor, choose "Microkernel -> Active Files." Find the CPOPNSLM table. See following sample screen:

In this example, we see that the user who is currently using the CPOPNSLM table is "emk."  Now you can go to user emk and ask him/her to logout of Elliott to end the usage conflict of this table.

(3) Use PSQL Monitor Utility on server console to terminate the offending user.
Sometimes when the user terminates an Elliott session through an exception method, like killing an Elliott task through Task Manager, open PSQL files can be left behind without closing, even though an Elliott session is no longer present.  In situations like that, you should try to logout the user from the Windows session.  If that still does not resolve your problem, then you may have to terminate the user through the PSQL Monitor utility.

Go to PSQL Montior Utility, and choose "MicroKernel -> Active Users."  Find the offending user session, then click on the"Delete Current User" button.


Feedback and Knowledge Base