Configure a dedicated email dispatch server

Abstract

Use dedicated EXM servers to speed up the process of generating and sending messages.

Dedicated EXM servers generate messages in the same way as the primary server does. This lets you speed up the message generation and sending process. You can install one or more dedicated email dispatch servers, depending on your typical dispatch scenario and deployment environment. All servers share the same databases.

To configure a dedicated server:

  1. On the dedicated server, install Sitecore Experience Platform and configure it as a basic Content Management server. You can combine it with other server roles as needed.

  2. In the Web.config file, in the <appSettings> section, add DedicatedDispatch as a role. For example:

    <add key="role:define" value="ContentManagement, DedicatedDispatch" />
    
  3. On the primary Content Management (CM) server, in the Sitecore.EmailExperience.ContentManagementPrimary.config file, in the <DedicatedServers> section, enter the address of the dedicated server. For example:

    <DedicatedServers>
       <address value=" http://dedicated.server " />
    </DedicatedServers>
    

    Note

    If you enter the IP address of the dedicated server in the address setting (for instance: <address value="http://10.38.41.24" />), then on the dedicated server, Sitecore must run on the default web site.

    You have now configured the dedicated server. You can configure several dedicated servers using this procedure.

  4. On the primary CM 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"
    />
  5. 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 format of the connection string value is represented by a 64-character hexadecimal format. The connection string value above is just an example. You must create your own.

You have now configured the dedicated server. You can configure several dedicated servers using this procedure.

When you start the dispatch process on the primary CM server, the same process starts on the dedicated servers. As long as there are subscribers left in the list in the EXM dispatch queue, each server accesses the list, takes some of the remaining subscribers, generates the message for them, and passes the message to the message transfer agent configured for this server.

Tip

You can use the Sleep setting in the SendEmail pipeline to balance the load between the primary CM server and the dedicated servers.

Using scripts to configure the Content Management server and dedicated dispatch server (DDS) in a scaled environment

In on-premise deployments, the Sitecore Installation Framework (SIF) uses the sitecore-XP1-cm.json file as a template for the CM server, and the sitecore-xp1-dds.json file as a template for the DDS. The Sitecore-XP1-cm-dds-patch.json file is a SIF patch configuration that adds support for EXM on a dedicated dispatch server and updates both the CM and the DDS.

If you want to deploy the patch, you can use this script:

Install-SitecoreConfiguration -Path "sitecore-XP1-cm-dds-patch.json" -Package ".\Sitecore.Patch.EXM (OnPrem)_CM.zip" -SiteName "CMSiteName" -DedicatedServerHostName "DDSHostName"

On the CM server, the DeployXP1.ps1 file uses the Sitecore-XP1-cm-dds-patch.json file to:

  • Add the <add name="EXM.DedicatedDispatchService" connectionString="/sitecore%20modules/web/exm/dedicateddispatchservice.asmx"/> connection string.

  • Update the Sitecore.EmailExperience.ContentManagementPrimary.config file and adds the URL of the DDS server to the <DedicatedServers> node.

  • Update the EXM.CryptographicKey, EXM.AuthenticationKey, and the EXM.InternalApiKey.

In SIF, the DeployXP1.ps1 file uses the Sitecore-XP1-cm-dds-patch.json file to:

  • Download the DDS patch for the web deployment package.

  • Install the patch and update the following parameters:

    • Application Path (the name of the CM site to be patched).

    • EXM Cryptographic Key (64-digit hexadecimal EXM Cryptographic Key).

    • EXM Authentication Key (64-digit hexadecimal EXM Authentication Key).

    • EXM Internal Api Key (64-digit hexadecimal EXM Internal API Key for validation requests to the DDS).

    • Dedicated Dispatch Service (the Dedicated Dispatch Service path with the default value /sitecore%20modules/web/exm/dedicateddispatchservice.asmx, which is added to the connection string on the primary CM server).

    • Dedicated Server Host Name.

  • Update the following parameters in the Sitecore.EmailExperience.ContentManagementPrimary.config file and in the ConnectionString.config file:

    • EXM.DedicatedDispatchService

    • EXM.CryptographicKey

    • EXM.AuthenticationKey

    • EXM.InternalApiKey

    • DedicatedServers