Data Access Component Directives

The Data Access Component (DAC) enables you to connect to data using Open Database Connectivity (ODBC) and Threaded Kernel Table Services (TKTS). ODBC database source names (DSNs) are not managed by the DAC, but by the Microsoft ODBC Administrator. However, TKTS DSNs are managed by the DAC, and TKTS connections are stored in a TKTS DSN directory. The DAC reads a list of settings to determine what actions to take, where to find various things that it needs, and how to make the proper connections.
Note: The default DAC directives should be satisfactory for most sites. Change these settings only if you have special needs.
There are three types of DAC Configuration Directives:
configuration options
Most of the DAC's settings come from configuration values as specified in app.cfg or other configuration files that are read in a specific sequence. It is recommended to put these settings in the app.cfg file, but they can be put in macro.cfg or another application-specific configuration file. See Configuration Options for a more comprehensive list of possible configuration values.
registry
The DAC only looks in the registry for DSN-specific items. These are found in either or both HKEY_CURRENT_USER\Software\DataFlux\dac\{version}\{dsn} or HKEY_LOCAL_MACHINE\Software\DataFlux\dac\{version}\{dsn}. In this case, "dsn" is a string with the same name as the DSN to be affected.
environment variables
You can identify the environment variables with $NAME in the following table. The application using the DAC typically sets environment variables to appropriate locations. On Windows, $DFEXEC_HOME is set to the application's root directory.
Setting
Description
Windows
UNIX
Command file execution
Specifies a text file with SQL commands (one per line). These commands run in turn on any new connection that is made. For example, they can be used to set session settings. This is implemented only for the ODBC driver.
The DAC/SAVEDCONNSYSTEM configuration value specifies the path to the saved connections. The DAC checks for files with the same filename as the DSN and a .sql extension.
The same as Windows.
Connection and login timeout
Enables you to specify the time in seconds for a connection time-out and a login time-out.
The string type value is located in USER\dsn_name\logintimeout (or connecttimeout) where dsn_name is the name of the dsn. The string value is the number of seconds for the time out. If the string type value is not found in USER\. then the DAC looks in the SYSTEM\dsn_name\logintimeout.
Not supported.
DAC logging
Determines whether to create a log file for DAC operations.
This is controlled through the effective logging configuration files, which use the SAS logging facility. The logger name "DAC" should be used.
The same as Windows.
DFTK log file
Specifies the log file that interacts with the DFTKSRV layer and is useful only for debugging issues specific to dftksrv. This setting is applicable only if you are running DFTK out of process.
Look for config value DAC/DFTKLOGFILE.
The same as Windows.
Disable CEDA
Specifies whether to disable CEDA. This setting is applicable only to tkts connections.
Look for DAC/DFTKDISABLECEDA configuration value, which should specify any non-null value (for example, yes).
The same as Windows.
Multiple active results sets (MARS)
Specifies whether to allow a connection to open multiple result sets at the same time. This is applicable only when using the SQL Server Native Client driver on Windows against a SQL Server 2005 (or later).
Look in USER\dsn_name\mars for dword value of 1 where dsn_name is the name of the dsn. If the DAC does not find it, it looks in the SYSTEM\dsn_name\mars.
Not applicable.
Oracle NUMBER(38) handling
If connected to Oracle (only), NUMBER(38) columns are treated as INTEGER by default. To override that functionality, treat them as REAL.
Look in USER\oranum38real for dword value of 1. If it is not found in USER, look in SYSTEM\oranum38real.
Look in $HOME/.dfpower/dsn.cfg for a line dsn_name = oranum38real where dsn_name is the name of the DSN.
Read uncommitted
For SQL Server only, specifies that reading data from cursors is allowed to read uncommitted rows. This can alleviate lockups in SQL Server (applies to DMP version 2.3 and later).
Look in USER\dsn_name\readuncommitted for dword value of 1. Where dsn_name is the name of the dsn. After looking in USER, look in SYSTEM.
Look in $HOME/.dfpower/dsn.cfg for a line dsn_name = readuncommitted where dsn_name is the name of the DSN.
Run DFTK out of process
Specifies whether to run TKTS out of process, allowing you to perform troubleshooting.
Look for config value DAC/DFTK_PROCESS. This should specify any non-null value (for example, yes).
The same as Windows.
Suffix for CREATE TABLE statements
This enables you to provide a string that is appended to every CREATE TABLE statement. If you include %T in this string, it is substituted with the table name.
Look in USER\dsn_name\postcreate for a string where dsn_name is the name of the dsn. If it is not found in USER, look in SYSTEM.
Not supported.
System saved connection
Specifies where to find system-saved connections.
Look in DAC/SAVEDCONNSYSTEM config value for a path. If it is not found, the DAC checks for the DFEXEC_HOME environment variable in the $DFEXEC_HOME\etc\dsn subdirectory, which is in the installation directory.
Look for the same config value. If not found, look in the $DFEXEC_HOME/etc/dsn subdirectory, which is in the installation directory.
TK Path
Specifies where threaded kernel files are located. This setting is applicable only if you are running Data Factory Took Kit (DFTK) out of process. The dftksrv path and core directory should be specified.
Look for config value DAC/DFTK_PROCESS_PATH. If still not found, set it to $DFEXEC_HOME\bin;$DFEXEC_HOME\bin\core\sasext.
Same as for Windows, but sets it to $DFEXEC_HOME/lib/tkts if it is not found.
TKTS DSN directory
Specifies the path where TKTS DSNs are stored in XML files.
Look in config value DAC/DSN. If it is not found, look in $DFEXEC_HOME\etc\dftkdsn\.
Look in the same config value. If it is not found, look in $DFEXEC_HOME/etc/dftkdsn/.
TKTS log file
Specifies the log file that is produced by the TKTS layer and is useful for debugging tkts issues.
Look for config value DAC/TKTSLOGFILE.
The same as Windows.
TKTS startup sleep
Specifies how much time in seconds to delay between the start of the dfktsrv program and the booting of threaded kernel. This setting is applicable only if you are running DFTK out of process.
The DAC checks the registry for a tktssleep value.
Not supported.
User saved connection
Specifies where to find user-saved connections.
Look in DAC/SAVEDCONNUSER config value for a path. If not found, look in the user's application settings directory, which is usually found in the %APPDATA% directory, in the DataFlux\dac\version subdirectory.
The %APPDATA% location is C:\Users\userid\AppData\ for Windows 7 and C:\Documents and Settings\userid\Application Data\ for Windows XP.
Look for the same config value. If not found, look in the $HOME/.dfpower/dsn directory.
Use braces
Specifies whether to enclose DSN items in braces when they contain reserved characters. Most drivers do not support use of braces. However, this might be an option if problems occur with saving credentials.
The DAC looks in USER\usebraces for dword value of 1. If it is not found there, the DAC looks in SYSTEM\usebraces.
Look in $HOME/.dfpower/dsn.cfg for a line dsn_name = usebraces where dsn_name is the name of the DSN.