Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

AVEVA Enterprise SCADA

Troubleshoot OpenAccess

  • Last UpdatedNov 02, 2023
  • 3 minute read

This section is intended to guide you through a potential issue you may encounter when configuring OpenAccess.

If an application that executes a RealTime database (RTDB) query reports a Disk Cache file size limit has reached error, you need to customize the OpenAccess parameters.

To customize the OpenAccess parameters

  1. Navigate to %DNADataRoot%\RealTime\config\ConfigTool\SnapIns, and create a new Config Tool snap-in file named Customizations.SQLEngine.xml.

    For configuration information, refer to the example configuration file below.

  2. Depending on your scenario, open the RealTime Config Tool to apply the changes.

    • If using the graphical Config Tool

      1. Run the %DNAInstallRoot%\RealTime\scripts\Start-ConfigTool.ps1 script.

      2. If the system has been previously configured, select Customization SQL Engine OpenAccess, and then run the Config Tool.

        Embedded Image (65% Scaling) (LIVE)

    • If the system is a Windows Core environment

      • Open the Config Tool from the console by executing the following command for your location of the OASySInfo.ini file:

        .\Start-ConfigTool.ps1 -ControlRoom -ConfigurationFile "C:\TelventInstall\Enterprise\LSSCADAPROD.LOCAL\OASySInfo.ini" -Features "Customizations.SQLEngine"

The sample file that is provided in this section will perform the following actions:

  1. Get settings from the OASySInfo.ini file.

  2. Get location of OpenAccess from the Windows registry.

  3. Delete the ServiceSQLDiskCacheMaxSize and ServiceSQLDiskCacheMemSize attributes if they exist.

  4. Create the ServiceSQLDiskCacheMaxSize and ServiceSQLDiskCacheMemSize attributes.

    Notes: The values provided (100 and 10000) are a sample configuration. You must tune these values to the appropriate ones for the system.

    As a rule, the disk cache size must be bigger than the query size.

    File sample configuration

    <?xml version="1.0" encoding="utf-8"?>

    <Config Label="Customization SQL Engine OpenAccess" Configured="True">

    <Requires>

    <Features>

    <FeatureRef Name="SQLEngine" />

    </Features>

    </Requires>

    <ExecutionSequence>

    <!-- Get settings from the OASySInfo.ini file -->

    <ActionRef Name="Action_SystemConfigurationSettings" TerminateOnFailure="true" />

    <!-- Get location of OpenAccess from Windows registry -->

    <ActionRef Name="GetRegistryValue" TerminateOnFailure="true" ResultKey="OPENACCESSROOT">

    <Params>

    <Param Name="RegHive" Value="HKEY_LOCAL_MACHINE" />

    <Param Name="RegKey" Value="SOFTWARE\DataDirect\OpenAccess81" />

    <Param Name="RegValue" Value="OpenAccess" />

    </Params>

    </ActionRef>

    <ActionRef Name="Action_SetEnvironmentVariable" TerminateOnFailure="true">

    <Params>

    <Param Name="Name" Value="OPENACCESSROOT" />

    <Param Name="Value" Value="[OPENACCESSROOT]" />

    </Params>

    </ActionRef>

    <ActionRef Name="Action_SetEnvironmentVariable" TerminateOnFailure="true">

    <Params>

    <Param Name="Name" Value="OPENACCESSSERVICE" />

    <Param Name="Value" Value="RealTime" />

    </Params>

    </ActionRef>

    <!-- Delete Attribute ServiceSQLDiskCacheMaxSize -->

    <ActionRef Name="Action_LaunchApp" TerminateOnFailure="true">

    <Params>

    <Param Name="Executable" Value="[OPENACCESSROOT]\admin\oaclasil.exe" />

    <Param Name="Arguments" Value="-d &quot;[OPENACCESSROOT]\cfg\oadm.ini&quot; ServiceAttributeDelete [OPENACCESSSERVICE] ServiceSQLDiskCacheMaxSize" />

    <Param Name="Hide" Value="false" />

    <Param Name="Wait" Value="true" />

    <Param Name="AbortOnFailure" Value="true" />

    <Param Name="ExpectedErrorCodes" Value="0, 1" />

    </Params>

    </ActionRef>

    <!-- Delete Attribute ServiceSQLDiskCacheMemSize -->

    <ActionRef Name="Action_LaunchApp" TerminateOnFailure="true">

    <Params>

    <Param Name="Executable" Value="[OPENACCESSROOT]\admin\oaclasil.exe" />

    <Param Name="Arguments" Value="-d &quot;[OPENACCESSROOT]\cfg\oadm.ini&quot; ServiceAttributeDelete [OPENACCESSSERVICE] ServiceSQLDiskCacheMemSize" />

    <Param Name="Hide" Value="false" />

    <Param Name="Wait" Value="true" />

    <Param Name="AbortOnFailure" Value="true" />

    <Param Name="ExpectedErrorCodes" Value="0, 1" />

    </Params>

    </ActionRef>

    <!-- Add Attribute ServiceSQLDiskCacheMaxSize -->

    <ActionRef Name="Action_LaunchApp" TerminateOnFailure="true">

    <Params>

    <Param Name="Executable" Value="[OPENACCESSROOT]\admin\oaclasil.exe" />

    <Param Name="Arguments" Value="-d &quot;[OPENACCESSROOT]\cfg\oadm.ini&quot; ServiceAttributeAdd [OPENACCESSSERVICE] ServiceSQLDiskCacheMaxSize 100" />

    <Param Name="Hide" Value="false" />

    <Param Name="Wait" Value="true" />

    <Param Name="AbortOnFailure" Value="true" />

    <Param Name="ExpectedErrorCodes" Value="0" />

    </Params>

    </ActionRef>

    <!-- Add Attribute ServiceSQLDiskCacheMemSize -->

    <ActionRef Name="Action_LaunchApp" TerminateOnFailure="true">

    <Params>

    <Param Name="Executable" Value="[OPENACCESSROOT]\admin\oaclasil.exe" />

    <Param Name="Arguments" Value="-d &quot;[OPENACCESSROOT]\cfg\oadm.ini&quot; ServiceAttributeAdd [OPENACCESSSERVICE] ServiceSQLDiskCacheMemSize 10000" />

    <Param Name="Hide" Value="false" />

    <Param Name="Wait" Value="true" />

    <Param Name="AbortOnFailure" Value="true" />

    <Param Name="ExpectedErrorCodes" Value="0" />

    </Params>

    </ActionRef>

    <ActionRef Name="Cleanup" ActionType="Sequence">

    <Sequences>

    <Sequence>

    <Actions>

    <ActionRef Name="Action_UnsetEnvironmentVariable" TerminateOnFailure="true">

    <Params>

    <Param Name="Name" Value="OPENACCESSROOT" />

    </Params>

    </ActionRef>

    <ActionRef Name="Action_UnsetEnvironmentVariable" TerminateOnFailure="true">

    <Params>

    <Param Name="Name" Value="OPENACCESSSERVICE" />

    </Params>

    </ActionRef>

    </Actions>

    </Sequence>

    </Sequences>

    </ActionRef>

    </ExecutionSequence>

    </Config>