SYSPASS DDF Shared Memory Not Available When Starting Up Elliott

SYSPASS DDF Shared Memory Not Available When Starting Up Elliott

Release Date: 1/18/2019

Q - I just started to use Elliott 8.5, on a user's computer, with the EL850.EXE utility, I created the Run Local icon for the user on the desktop.  When I logged in to Elliott 8.5 for the first time, right after the system prompted me for the user ID and password, the following message showed up:

DDF Error Trying to Create File
SYSPASS: DDF shared memory not available
File:M:\Elliott7\SYSPASS.DAT
Processing will continue.


What does this message mean?

A - The root cause of this problem has to do with NTFS security and the new Windows OS.  The following are the conditions that will cause this error to happen:
  1. You implemented NTFS security on your Elliott folder per our recommendation in this article: https://support.netcellent.com/portal/en/kb/articles/elliott-8-directory-structure-and-ntfs-rights-23-10-2024
  2. The user had minimum rights to the Elliott root folder per KB article above.
  3. You were running on a newer Windows OS like Windows 10.
  4. In your Elliott configuration file (<ElliottRoot\Bin\EL800.CFG or <ElliottRoot>\Bin85\EL850.CFG), the flag RequireDDF is set to "Yes."
Then this issue can happen.

The Cause of This Problem
  1. The root of this problem is when you implemented our suggested NTFS security, your user only had sufficient right to "List Folder Contents" for your Elliott root directory.  This right is interpreted differently between Windows operating systems.  With the older Windows OS, it means you can see the sub folder and files under the Elliott root directory.  With the newer OS, like Windows 10, you can see the sub folders, but you can see the files under the Elliott root directory with just the "List Folder Contents" right.
  2. When you have the flag "RequireDDF" set to "Yes," it means when a file is opened I-O, our system will first check to see if the file exists. Since you are running on a newer Windows OS, the check file exist routine returns negative. Since the file does not exist, the system will create the file automatically.  In order to make the file index SQL compliant, it will try to read the DDF to retrieve the SQL compliant index structure so the file can be created to be compatible with the SQL relational operation.
  3. But when you first start up, the DDF is loaded to your computer memory with a different thread, and it will take some time to complete.  When the original thread finds the first file SYSPASS, it tries to open I-O and it does not exist, so it references the DDF table in the memory.  Since the loading of DDF to the memory is not complete, you get this error message.
Why This Is Not a Problem for Elliott 8.2
In Elliott 8.2, the flag RequireDDF is set to "No" by default. On the other hand, in Elliott 8.5, this flag is set to "Yes" by default.  

The reason is that Elliott 8.2 does not depend on all PSQL relational operations. But the Elliott 8.5 Report Desk feature uses PSQL relational operations exclusively.  We need to ensure all new tables created in Elliott are SQL compliant. 

Solution
At this moment, simply execute the utility <ElliottRoot>\Bin85\EL850CF.EXE and go to the "Options" tab. Under the "DDF Option" section, uncheck the "Require DDFs to create non-work files" option. See sample screen below:



In the future, we will develop a different mechanism to check if the file exists and to ensure that functionality will work even if the user can't see that file due to NTFS security limitations.


EMK


    • Related Articles

    • Btrieve Error 012 on SYSPASS Password File When Starting Up Elliott

      Release Date: 07/28/2020 Version: 8.2 & up Q - I have a single user workstation that displays the error below as soon as they double-click the EL800p icon: EL800P: Btrieve Error 012 on SYSPASS Password File If I click on th "Detail" button, then I ...
    • Configuring Elliott V8.0

      Configuring Elliott V8.0 After installing Elliott V8.0, you need to make some configuration changes. If this is the first time you have started Elliott, the system will detect that the EL800.CFG file does not exist in your startup <root>\Bin ...
    • DDF Files in DATA Folder May Confuse PSQL

      Release Date: 04/27/2018 Q - We recently noticed a strange phenomenon where if I try to access Elliott column names in the ARCUSFIL, I find the Customer AR account is defined as CUS_AR_ACCT_NO and it is 24 digits. See sample screen below: I have an ...
    • A Comparison of Elliott 7.5, 8.2, 8.5, 8.6 and 8.6 V2 DDF Files

      Release Date: 11/15/2022 Last Updated: 06/25/2024 Version: 7.5 & Up DDF Files are used to define the PSQL database schema. Generally speaking, we distribute four different types of DDF files for different versions of Elliott releases: 7.5 DDF: These ...
    • AP API

      AP API This API returns various values from the Shared Memory Area. For example: MOVE "AP" TO SCREEN-PARAMETERS MOVE "EDITOR" TO SCREEN-LITERAL PERFORM SCREEN-ROUTINE This returns the user’s preferred Editor in SCREEN-ALPHA-FIELD. The following ...