Compiling the MTA configuration

When using a compiled configuration, whenever you make a change to the MTA configuration, such as to mappings, rewrite rules, channels, aliases, conversions, dispatcher configuration (8.0 or later), job controller configuration (8.0 or later), or channel-specific options (8.0 or later), you must recompile your configuration for the changes to take effect. Compilation reads the entire configuration and writes it out as a single binary file.

Whenever a component of the MTA (such as a channel program) must read the configuration file, it first checks to see if a compiled configuration file exists. If it does, the image is loaded instead of reading the various configuration files.

The command to compile the MTA configuration is: imsimta cnbuild Prior to MS 7.0.5, two MTA Tailor options were relevant for :    specified the default output image file, and   specified an option file adjusting configuration internal table sizes. As of MS 7.0.5, these MTA Tailor options have been deleted, and hard-coded file paths are used instead, config-root and server-root, where server-root is the install directory or the value of the   environment variable.

Compiled configurations have a static part and a dynamic reloadable part. If the dynamic part is changed, and you run the  command, all running MTA processes will reload the dynamic data. The dynamic parts are presently the mapping tables and text databases. Everything else is static.

Using a compiled configuration makes it easy to test configuration changes because the configuration files themselves do not "go live" until they are compiled. Most MTA test utilities provide a  switch which tells them to ignore the compiled configuration and instead read the configuration from the original files. This lets you test things to make sure they are working before affecting the running system.

If you make changes to your mappings or reverse, forward, or general text databases, then after recompiling issue the command  to get the changes to take effect. Note that a compiled configuration is a prerequisite to using.

Note that  also reloads authentication, SSL/TLS, and as of Messaging Server 8.0.2, affinity group options. This is done even if the MTA&#x27;s configuration is not compiled.

If you make changes to other parts of the configuration you must restart the components whose configuration was changed. Some of the dependencies are:



 imsimta restart smtp 

 Changes to mappings, aliases, channels, rewrite rules, channel-specific options for SMTP channels, or text databases. 

 imsimta restart dispatcher 

 Changes to the dispatcher configuration, mappings, aliases, channels, rewrite rules, channel-specific options for SMTP channels, text databases 

 imsimta restart job_controller 

 Changing the job controller configuration, adding or deleting channels, or changing the values of any of the channel options,  ,  ,  ,  ,  , or. Note that adding or changing a  channel option value can be dealt with instead by using the   command. You must also restart the job controller if you want changes to master channel jobs to take effect immediately (rather than waiting for the controller to time-out existing channel jobs). 



Try to avoid restarting the Job Controller, especially at times when large numbers of messages are in the queues, unless one of the preceding conditions necessitates a restart.

The following changes for compiled MTA configurations were introduced in Messaging Server 8.0:



 The dispatcher configuration, job controller configuration, and channel-specific options are now part of the compiled configuration. </li>

<li> The  command no longer generates a compiled configuration by default, for both legacy and Unified Configuration. </li>

<li> Unified Configuration provides the  switch in various test utilities like. When combined with the, this allows testing of configuration files in non-default locations. </li>

<li> The  command now shows if a compiled configuration is used or not. </li>

</ul>

See also:
 * The MTA
 * cnbuild utility
 * Getting option changes to take effect on the MTA
 * When mapping table changes take effect
 * imta_config_data MTA Option
 * imta_option_file MTA Option
 * Internal size MTA options