How to Resolve File Busy or Permission Error from Updating DDF Due to Login SUPERVISOR
Version: 8.6 & Up
File Busy Error
Installing Elliott 8.6 or a later version will cause the DDF files in the <ElliottRoot>\Bin86\DDF40 folder to be updated. However, the DDF files in <ElliottRoot>\Bin86\DDF40\STDDDF will not be updated by the installation utility. This is because the DDF files in <ElliottRoot>\Bin86\DDF40\STDDDF are likely being opened by the PSQL engine if you use the relational engine features in Elliott 8.6 or later versions. The installation avoids updates that may cause file opening conflicts such as those that might occur with DDF files in this folder.
The DDF files in <ElliottRoot>\Bin86\DDF40\STDDDF should still be updated later but can be deferred without major impact. We suggest that admin users ask other Elliott users to exit at night or over the weekend, and that the admin users then login to Elliott 8.6 as SUPERVISOR either at night or on a weekend. This will cause the DDF files in <ElliottRoot>\Bin86\DDF40 to be copied to the <ElliottRoot>\Bin86\DDF40\STDDDF folder. See the following KB article for more details:
This documentation provides step-by-step suggestions on how to resolve "File Busy" errors when you login as SUPERVISOR. See sample screen below:
The objective is to make sure DDF files in <ElliottRoot>\Bin86\DDF40\STDDDF are not opened from any source. If you can ensure that, then you can login to Elliott 8.6 as SUPERVISOR again. If the above window does not show up, then the DDF files are updating successfully.
Step 1. Make Sure All Elliott Users Exit
Go to Utility -> User List. If you are the only user in Elliott, then you should be the only one on the User List:
Step 2. Check Open Files of Share Folder on the PSQL Server
On the PSQL server, start "Computer Management" as shown in the following sample screen:
In Computer Management, go to Shared Folder -> Open Files. See sample screen below:
Make sure there's nobody opening the DDF files in the <ElliottRoot>\Bin86\DDF40\STDDDF folder.
Step 3. Check DDF Files in PSQL Monitor on the PSQL Server
On the PSQL server, start PSQL Monitor. You can start PSQL Monitor from the PSQL Control Center -> Tools -> Monitor -> Active Files tab. In the below example, you can see that DDF files in <ElliottRoot>\Bin86\DDF40\STDDDF are open:
In the Handle Information pane above, it shows the Client as "Cllent #6" and the Site as "Local." This indicates that these DDF files are opened by the PSQL relational engine. To make the PSQL relational engine close DDF files, you need to restart the PSQL engine.
Step 4. Restarting the PSQL Engine
If it is necessary to restart the PSQL engine, then go to the PSQL server, and select "Services." In "Services," find "Actian PSQL...." See sample screen below:
For PSQL 13, you will see two entries: Actian PSQL Relational Engine and Actian PSQL Transactional Engine.
- Right click on Actian PSQL Relational Engine, and choose "Stop" in the popup menu.
- Right click on Actian PSQL Transactional Engine, and choose "Stop" in the popup menu.
- Right click on Actian PSQL Transactional Engine, and choose "Start" in the popup menu.
- Right click on Actian PSQL Relational Engine, and choose "Start" in the popup menu.
For PSQL 15, you will see only one entry for the Actian PSQL Engine. Right click and choose "Stop" and "Start" to restart the PSQL engine.
* Note that if you also use the PSQL Report Engine, then you should also restart the PSQL Report Engine after the PSQL Database Engine is restarted.
Step 5. Startup Elliott 8.6 and Login as SUPERVISOR
You can startup Elliott 8.6 from any machine and login as SUPERVISOR. Sometimes, if NTFS security is implemented, you may encounter a permission error when updating DDF files from the PSQL server directly -- even if you are an admin-equivalent user. This has to do with UAC elevation. In that case, you can use the following two strategies:
- Login as Administrator on the PSQL server. Start Elliott 8.6 and login as SUPERVISOR.
- Login as Administrator or Administrator Equivalent on the workstation. Start Elliott 8.6 and login as SUPERVISOR.
Do I have to Stop & Start PSQL Engine in Order to Update the DDF?
Since Stop and Start PSQL Engine may affect a lot of processing, if you wish to avoid that and still want to update the DDF, you can find the following two files in <ElliottRoot>\Bin86\DDF40 folder:
- STARTBU.BAT
- ENDBUT.BAT
You can execute the STARBU.BAT on the PSQL server and put the DDF files in <ElliottRoot>\Bin86\DDF40\STDDDF into continuous operation mode. From there, you can update the DDF files. It is very important that you must execute ENDBU.BAT after the DDF files are update.
You may need to modify these two files to make sure their path point to your server local path of your Elliott installation. The following is the sample content of STARTBU.BAT
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\ATTRIB.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FIELD.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FILE.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\INDEX.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\OCCURS.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\PROC.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RELATE.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RIGHTS.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\TRIGGER.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VARIANT.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VIEW.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FIELD.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FILE.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\INDEX.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\OCCURS.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\PROC.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RELATE.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RIGHTS.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\TRIGGER.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VARIANT.DDF
BUTIL -STARTBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VIEW.DDF
The following is the sample content of ENDBU.BAT
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\ATTRIB.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FIELD.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FILE.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\INDEX.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\OCCURS.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\PROC.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RELATE.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RIGHTS.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\TRIGGER.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VARIANT.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VIEW.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FIELD.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\FILE.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\INDEX.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\OCCURS.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\PROC.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RELATE.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\RIGHTS.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\TRIGGER.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VARIANT.DDF
BUTIL -ENDBU D:\ACCT\ELLIOTT7\BIN86\DDF40\STDDDF\VIEW.DDF
One downside of using this method is the DDF files date/time in the STDDDF will become the system date/time after.
What If I Get Permission Error Instead?
Sometime, instead of a "File Busy" error, you may receive a "Permission Error" message instead. See the following sample screen:
If you have implemented NTFS security within your Elliott folder, then this is likely due to the Windows user you are logged in as lacking sufficient rights to update the <ElliottRoot>\Bin86\DDF40 folder. Try logging in as an admin user and try again. The best option is to log in as the "Administrator" user directly.
In some situations, even if you are logged in as an Administrator-equivalent user, if it is not the “Administrator” user itself, depending on your Windows settings, it may still require UAC elevation. Since Elliott will not prompt for UAC elevation, the DDF may fail to update due to NTFS permission errors. So try logging in as "Administrator" instead of an admin equivalent user and try again.
In some situations, even if you are logged in as an Administrator-equivalent user, if it is not the “Administrator” user itself, depending on your Windows settings, it may still require UAC elevation. Since Elliott will not prompt for UAC elevation, the DDF may fail to update due to NTFS permission errors. So try logging in as "Administrator" instead of an admin equivalent user and try again.
EMK