# Configuration File Sections

The DAH configuration file contains several sections that represent different areas that you can configure. For details on all available configuration parameters, refer to the Distributed Action Handler Reference.

Related Topics

- Display Online Help

## [ACIEncryption] Section

You can encrypt communications between the DAH and other ACI servers (for example, IDOL Servers and License Server) by configuring an `[ACIEncryption]` section in each of the application configuration files. For example:

    [ACIEncryption]
    CommsEncryptionType=GSS
    ServiceName=Kerberos

## [AuthorizationRoles] Section

The `[AuthorizationRoles]` defines roles that enable a particular set of actions for particular clients, SSL identities, and GSS principals. You must create a subsection for each authorization role that you define in the `[AuthorizationRoles]` configuration section.

For example:

    [AuthorizationRoles]
    0=AdminRole
    1=UserRole

    [AdminRole]
    StandardRoles=Admin,Index,ServiceControl
    Clients=localhost
    SSLIdentities=admin.example.com

    [UserRole]
    StandardRoles=Query,ServiceStatus
    SSLIdentities=admin.example.com,userserver.example.com

## [DistributedCommandN] Section

The `[DistributedCommandN]` sections contain settings for actions that DAH must send to all child servers. Each section specifies the action, templates, and parameters for one action. You must number the distributed command sections in consecutive order, starting from 0 (zero). To use distributed commands, you must also set `DistributedCommands` in the `[Server]` section to the number of `[DistributedCommandsN]` configuration sections that you create.

NOTE: If you want to use distributed commands in the DAH, you must configure and use XSL templates. Set `XSLTemplates` to `True` in the `[Server]` section. You can then set the `Templates` parameter for each `DistributedCommandN` section to use an XSL template. The IDOL Server installation for DAH includes a `templates` directory, which contains some example templates.

    [DistributedCommand0]
    Action=Query
    Template=query_storedstatedetail.xsl
    RequiredParams=2
    ParamName0=storestate
    ParamValue0=True
    ParamName1=storedstatedetail
    ParamValue1=True

    [DistributedCommand1]
    Action=queueinfo
    Template=queueinfo.xsl

## [DistributedEngineN] Section

The `[DistributedEngineN]` section contains settings that determine the details of individual child servers to which the DAH distributes actions. For example:

    [DistributedEngine0]
    Host=localhost
    Port=9100
    Type=IDOL

    [DistributedEngine1]
    Host=Galileo
    Port=9100
    Type=IDOL
    DefaultRelevance=75
    QueryFormat=PQF
    RequiresAuthentication=True
    ResponseFormat=XML
    SecurityKeys=12,34,6567,999
    SecurityType=Federated

NOTE: You must set the `DistributedEngines` parameter in the `[Server]` section to the number of child servers that you require.

## [Federated] Section

The `[Federated]` section contains configuration settings for federated search, including the number of defined federated modules, their types, and the paths to their libraries. For example:

    [Federated]
    Number=1
    DefineTypeCSVs0=Z39.50,K2
    LibraryPath0=federated.dll

## [License] Section

The `[License]` section contains licensing details which you must not change. For example:

    LicenseServerHost=127.0.0.1
    LicenseServerACIPort=20000
    LicenseServerTimeout=600000
    LicenseServerRetries=1

## [Logging] Section

The `[Logging]` section lists the log streams that you set up to create separate log files for different log message types (action and application). It also contains a subsection for each of the listed log streams, in which you configure the settings that determine how to log each stream. For example:

    [Logging]
    LogDirectory=./logs
    0=ACTION_LOG_STREAM
    1=APP_LOG_STREAM

    [ACTION_LOG_STREAM]
    LogFile=action.log
    LogTime=True
    LogEcho=True
    LogMaxSizeKBs=1024
    LogTypeCSVs=action
    LogLevel=full
    LogExpireAction=datestamp

    [APP_LOG_STREAM]
    LogFile=application.log
    LogTime=True
    LogEcho=False
    LogMaxSizeKBs=1024
    LogTypeCSVs=application
    LogLevel=full
    LogExpireAction=previous

## [MultiStageQuery] Section

The `[MultiStageQuery]` section contains settings for stage information for multistage querying. This section applies only to the DAH running in non-mirror mode. You configure the number of stages and specify the VDBs for each stage of the query. For example:

    [MultiStageQuery]
    Stages=3
    0=db0
    1=db1
    2=db2,db3

## [QueryTemplate] Section

The `[QueryTemplate]` section contains settings to specify the XSL templates to use when merging responses from child servers.

    [QueryTemplate]
    QueueInfo=queueinfo.xsl
    ProcessInfo=processinfo.xsl

## [Server] Section

The `[Server]` section contains general settings. For example:

    [Server]
    MirrorMode=True
    Port=9060
    TimeBetweenRetries=60000
    DistributionMethod=0
    XSLTemplates=False
    DistributedEngines=2
    VirtualDatabases=2

## [Service] Section

The `[Service]` section contains settings that determine which machines can use and control the IDOL Server service. For example:

    [Service]
    ServicePort=9061

## [StateChangingActions] Section

If you run the DAH in mirror mode, the `[StateChangingActions]` section contains settings that determine how the DAH handles actions that change the state of its children. For example:

    [StateChangingActions]
    RestrictSCAs=False
    MapsCategoryIDs=True
    MaxQueueSize=1000000
    CustomLibraryCSVs=convertusers
    MaxQueuedSCARetries=3

## [SSLOptionN] Section

The `[SSLOptionN]` section contains settings that determine incoming or outgoing SSL connections between the DAH and other servers. For example:

    [SSLOption0]
    SSLMethod=TLSV1.3
    SSLCertificate=host1.crt
    SSLPrivateKey=host1.key

    [SSLOption1]
    SSLMethod=TLSV1.3
    SSLCertificate=host2.crt
    SSLPrivateKey=host2.key
    SSLPrivateKeyPassword=sample1XQ
    SSLCheckCommonName=True

NOTE: You must create an `SSLOption` section for each unique value set by the `SSLConfig` parameter in the `[Server]`, `[DistributedEngineN]`, `[IDOLServerN]`, or `[DAHEngineN]` section.

## [VDBN] Section

If you run the DAH in non-mirror mode, you must create a `[VDBN]` section for each of the virtual databases that you want to create. Use this section to specify the database details. For example:

    [VDB0]
    DbName=AllNews
    Type=Combinator
    MapsTo=0:Today,2:News,3:CurrentAffairs

    [VDB1]
    DbName=Archive
    Type=Distributor
    MapsTo=0:Archive,1:Library

NOTE: You must set the `VirtualDatabases` parameter in the `[Server]` section to the number of virtual databases that you require.

_FT_HTML5_bannerTitle.htm