Adding an DDC Role to a server, 11 FMA Services are created responsible for functions that DDC performs:
They are also split into 3 Categories, based on purpose and criticality:
Desktops and Apps
AD Identity Service
Manages AD computer accounts for machines within the XA/XD deployment
Collects Analytical data regarding the XA/XD site configuration to be sent to Citrix for CEIP if enabled by Administrator
Brokers Connection between users and their resources (VDA)
Determines the available and enumerated resources for users
Tracks user sessions
Displays real-time data in Studio and Director
Configuration logging Service
Records configuration changes and administrator activities done from Studio, Powershell or Director for XA/XD Sites
Stores the information in the Logging DB
Stores service configuration information and works as a directory for FMA services to enable inter-service communication in a XA/XD deployment.
Delegated Administration Service
Stores configuration information regarding the rights assigned to administrators.
used by other FMA services to determine if users have required permissions to perform a certain operation.
Manages the power state of virtual machines
Handles host connections for a XA/XD deployment including:
Environment Test Service
Manages the tests that evaluate the state of the XA/XD deployment
Machine Creation Service
Handles the creation of new VMs using MCS services.
Monitors XA/XD deployments
Collects metrics regarding
user session usage
User logon performance
Connection and machine failure
Displays historical data in Director
Manages Storefront Deployment
Service interaction process
All services are independent from one another. This means that if one service goes down, the other services are not affected.
Each service establishes an independent connection to site database using a DB connection String and updates the DB with the data from that service
Monitor Service and Configuration Logging Services, also connect to Monitor Service DB and Configuration Logging DB respectively.
Services use Windows Communication Foundation (WCF) to communicate with each other.
Each Service contacts another using URL Endpoint Address of the Service
WCF Addresses are being kept by the Configuration Service directory instance
Delivery Controller Cache
Central Configuration Service is kept in the Site DB
Each DDC in a Site keeps a local instance of the configuration cache instance
This cache is updated @ every 5 minutes or at service start`up
Cache reduces SQL Queries
When a service needs to communicate with another, initiating service queries config service for WCF address of the target service
Config service checks the local cached copy of the config service directory and gives target address to initiating service
Each service maintains local cache of WCF addresses, reducing number of calls made to the config service
For services to communicate in this manner, updates, additions and removals of FMA services must be registered with config services.
In addition, existing services must be updated with the changes in config services directory, so that existing services are aware of updated access permissions for changes services.
When a new DDC is joined to a site, all FMA Services will register with config service directory to be aware of their addresses. Each service is updated with directory location. Controllers added through Studio, do this automatically. DB scripts contain this info when manually generated.
Service interaction example
This is a visual representation of a service interaction between an endpoint and a VDA
During connection brokering, broker service needs to contact the host service to determine status of VDA
To reach the host service, connection broker service needs to go through the configuration service in order to obtain the WCF Address of the Host Service
Once configuration service validates the Broker Service is registered with directory, it returns the WCF Address of the host service to the Broker Service.
Then the Broker Service contacts the Host Service using the obtained WCF Address and information is exchanged
When DDC Role is installed on a Server, individual folders corresponding to each folder are created
In each folder you will find 2 subfolders:
In this subfolder, you will find the service` corresponding executable (citrix.configuration.exe)
In this subfoder, you will also find the service` corresponding configuration file (citrix.configuration.exe.config)
The config file can be edited with any text editor
To enable logging, add as per below highlighted the following keys