How to optimize or customize the migration parameters.


You would like to customize or optimize the parameters of the migration process.


Both CodeTwo Exchange Migration and CodeTwo Office 365 Migration have config files with settings that can be edited to suit a wide range of migration scenarios. The config files can be found in default installation folder of the software. In 64-bit systems this would be:

C:\Program Files (x86)\CodeTwo\<Name of the software>

In 32-bit systems the installation folder can be found in:

C:\Program Files\CodeTwo\<Name of the software>

The config files are the same for both versions of the software. There are three files that you can modify:

Please keep in mind, that after changing the configuration in files mentioned below, you will need to restart main application and CodeTwo Exchange/Office 365 Data Provider Service. In order to open Services manager, you may simply run services.msc command. 

  1. C2ExchangeMigration.Common.dll.config in this file you may find the following parameters:

    • ConcurrencyMaxTargetConnectionsOffice365 - it defines the number of migration threads connected to Office 365,
      <setting name="ConcurrencyMaxTargetConnectionsOffice365" serializeAs="String">
    • ConcurrencyMaxTargetConnectionsExchange - it defines the number of migration threads connected to Exchange On-premises,
      <setting name="ConcurrencyMaxTargetConnectionsExchange" serializeAs="String">
      Decreasing the default values (20 and 15) may increase the migration speed (in environments where the Exchange server does not respond in a timely fashion).
  2. C2ExchangeMigration.Engine.dll.config this config file holds the following parameters:

    • MaxBatchItemsSize - the software migrates items in batches. This parameter defines the maximum size (in bytes) of such a batch,
      <setting name="MaxBatchItemsSize" serializeAs="String">
      The default value is 2 MB, you can both decrease and increase the value to see the impact on the migration process.
    • MaxBatchItemsCount - defines the the maximum number of items in one migration batch,
      <setting name="MaxBatchItemsCount" serializeAs="String">
      In order to increase the migration speed you might increase the value to 250. However, keep in mind that if just one of the items fails the whole batch is not migrated. The more items are in the batch the more items will require a Rescan or one at a time migration in the case of any problems. Reducing the batch size, on the other hand, considerably decreases the migration speed. The default value should be considered an optimal one.
    • EwsMaxRetryCount - defines the number of migration attempts (if the first one fails),
      <setting name="EwsMaxRetryCount" serializeAs="String">
      In order to speed up the migration you can decrease the value to 1, if some items are not migrated you may Rescan the migration manually after the initial migration. If, however, you often experience connectivity problems you should consider increasing this value.
  3. C2ExchangeMigration.MAPI.dll.config - contains the following timeout settings of a CodeTwo service responsible for extracting items from the source Exchange via MAPI and its communication with the main software's engine:

    • ReceiveTimeout / ReceiveTimeoutA - items extracting (downloading) operation timeout,
    • OpenTimeout / OpenTimeoutA - connection opening timeout (connection between MAPI service and the main software engine),
    • CloseTimeout / CloseTimeoutAconnection closing timeout,
    • SendTimeout / SendTimeoutArequest delivery timeout.

      Parameters' names in version 2.1 and newer are ending with A character, e.g. for OpenTimeout the parameter name is OpenTimeoutA.

      All of the above parameters are entered in the following pattern:
      • For version up to 2.0:
        <setting name="Parameter" serializeAs="String">
      • For version 2.1 and newer:
        <setting name="ParameterA" serializeAs="String">
      Lowering any of the above parameters is not recommended unless strictly advised by CodeTwo Support. Increasing timeout values may be a good idea if you experience performance issues with the source Exchange Server and the software logs errors mentioning "endpoint", "pipe", "net.pipe" or "SOAP". Be aware not to increase those values too much straight away - change values to 2x bigger, save config files, restart CodeTwo services as well as the main software's window and use Rescan feature to check the results.

All the default values have been thoroughly tested during the software test phase and have been decided to be the most efficient.