DDC FlexCast Management Architecture (FMA) Services

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:

  • Support Services
  • Core Services
  • Desktops and Apps
  • AD Identity Service
    • Manages AD computer accounts for machines within the XA/XD deployment
  • Analytics Service
    • Collects Analytical data regarding the XA/XD site configuration to be sent to Citrix for CEIP if enabled by Administrator
  • Broker Service
    • Brokers Connection between users and their resources (VDA)
    • Determines the available and enumerated resources for users
    • Tracks user sessions
    • Manages reconnections
    • 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
  • Configuration Service
    • 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.
  • Host Service
    • Manages the power state of virtual machines
    • Handles host connections for a XA/XD deployment including:
      • Hypervisor
      • Storage
      • Network
  • 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.
  • Monitor Service
    • Monitors XA/XD deployments
    • Collects metrics regarding
      • user session usage
      • User logon performance
      • Session LB
      • Connection and machine failure
    • Displays historical data in Director
  • Storefront Service
    • 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.

Service Communication

  • WCF
    • 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

  • Service Cache
    • 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

  • Service Changes
    • 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
  1. During connection brokering, broker service needs to contact the host service to determine status of VDA
  2. 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
  3. Once configuration service validates the Broker Service is registered with directory, it returns the WCF Address of the host service to the Broker Service.
  4. Then the Broker Service contacts the Host Service using the obtained WCF Address and information is exchanged

Service Logging

  • When DDC Role is installed on a Server, individual folders corresponding to each folder are created

C:\Program Files\Citrix\Servicename

  • In each folder you will find 2 subfolders:
    • Service
      • 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