Configuring EXM in a scaled environment

Abstract

Configure EXM to work in a scaled environment.

If you are working with Sitecore in a scaled environment, you must configure the Email Experience Manager (EXM) to work within this environment.

A scaled environment usually consists of one content management (CM) server, and one or more content delivery (CD) servers. You can configure servers for a specific purpose (for example, content management, content delivery, or processing) by enabling or disabling the relevant configuration files on each Sitecore instance.

In the standard multiserver Sitecore environment, all the content management and content delivery instances share the Core and Web databases, and all the CM instances share the Master database. This means that you must use the same connection strings to the databases for the configuration file of each server.

The following diagram illustrates the connections between the servers and the content databases in a standard multiserver Sitecore setup:

EXM in a scaled environment

Email campaigns are dispatched from each dedicated dispatch server (DDS) and, optionally, from the primary CM.

This topic outlines how to:

To configure a content management server:

  1. Install Sitecore Experience Platform and configure it according to the Sitecore scaling recommendations for content management servers.

    Note

    If you run Sitecore 8.1 update 3 or later updates, you must enable the interaction registry on your content management servers.

  2. Install the EXM according to the EXM installation guide.

    Important

    The EXM installation package that you download from dev.sitecore.net includes five zip packages – the Email Experience Manager and four zip files that match specific server roles. Do not use the files intended for other servers on the content management server.

  3. On the primary content management server, in the \App_Config\ConnectionStrings.config file:

    • Add the EXM.DedicatedDispatchService connection string, for example:

    <add name="EXM.DedicatedDispatchService" connectionString="/sitecore%20modules/web/exm/dedicateddispatchservice.asmx" />
    
  4. On all the content management servers in your scaled environment, in the \App_Config\ConnectionStrings.config file, add the EXM.InternalApiKey connection string, for example:

    <add name="EXM.InternalApiKey" connectionString="0x0000000000000000000000000000000000000000000000000000000000000000" />
    

    Note

    The InternalAPIKey is used internally by EXM to validate requests to DDS servers.

    Note

    The connection string must be a 64-character hexadecimal. The connection string value above is just an example and should not be used.

  5. In the \App_Config\Include\EmailExperience\ folder, enable the Sitecore.EmailExperience.ContentSearch.Solr.config file.

Note

In a scaled setup, any HTML files that you want to use as templates for your email campaigns must be manually copied to the Website\layouts\EmailCampaign\Imported folder on all the CM servers and dedicated dispatch servers that you have configured to dispatch email campaigns.

To configure a content delivery server:

  1. Install Sitecore Experience Platform and configure it according to the Sitecore scaling recommendations for content delivery servers.

    Important

    In the Sitecore.Analytics.Tracking.config file, ensure that the value of the Analytics.ClusterName setting is the hostname of the content delivery server. This is required for a scaled environment to avoid contacts being locked when running EXM. If there is more than one content delivery server in your environment, use the same value for each server.

    In addition, make sure that the content management server can reach the content delivery server through HTTP using the hostname that you have specified in the Analytics.ClusterName setting of the content delivery server.

  2. Add a connection string to the EmailCampaignClientService web service, for example:

    <add name="EmailCampaignClientService" connectionString="url=http://<CMServerHost>/sitecore%20modules/web/exm/ecmclientservice.asmx;timeout=60000" />
    
  3. In the \App_Config\ConnectionStrings.config file, add the following connection strings:

    • exm.web, for example:

    <add name="exm.web" connectionString="user id=user;password=password;Data Source=(server);Database=Sitecore_EXM_WEB" /> 
    
    • EXM.CryptographicKey and EXM.AuthenticationKey. Each key must be a hexadecimal 64-character string (with symbols 0-9 and A-F) and must be the same across all servers. The CryptographicKey and AuthenticationKey are used to encrypt/decrypt data. For example:

    <add name="EXM.CryptographicKey" connectionString=
    "E040C938FC9E4EBC3E93330B0F7837F284207B8180DB64CB5B6ABEB1AFBF6F5B" />
    <add name="EXM.AuthenticationKey" connectionString=
    "9D80B4E56AEE694058567BD89C936FB88F2DB1272A4E88F419B6501919E0BB25" /> 
    

    Note

    For security reasons, do not use the example key provided above.

    • EXM.InternalApiKey, for example:

    <add name="EXM.InternalApiKey" connectionString="0x0000000000000000000000000000000000000000000000000000000000000000" />
    

    Note

    The connection string must be a 64-character hexadecimal. The connection string value above is just an example and should not be used.

  4. Extract the relevant Email Experience Manager – Content Delivery package to your website root folder on the content delivery server.

  5. If you no longer want to use the primary CM server as a content delivery server, disable the Sitecore.EmailExperience.ContentDelivery.config configuration file and remove any Sitecore.EmailCampagin.Cd*.dll assemblies from the bin folder.

To configure a processing server for Analytics data processing and aggregation:

  1. Install Sitecore Experience Platform and configure it according to the Sitecore scaling recommendations for processing servers.

  2. Extract the relevant Email Experience Manager - Analytics Processing package to your website root folder on the processing server.

  3. To stop processing Analytics data, disable the Sitecore.EmailExperience.AnalyticsProcessing.LoadFields.config configuration file on the primary CM server.

To configure a reporting server:

  1. Install Sitecore Experience Platform and configure it according to the Sitecore scaling recommendations for reporting servers.

  2. Extract the relevant Email Experience Manager - Reporting package to your website root folder on the reporting server.

  3. To deactivate configuration that is only relevant for reporting servers, disable the Sitecore.EmailExperience.Reporting.config configuration file on the primary CM server.