Job Controller default configuration

From Messaging Server Technical Reference Wiki
Jump to: navigation, search


The MTA is distributed with an initial Job Controller configuration that is a suitable starting point for most sites. The default configuration defines three pools: (1) one named DEFAULT with a job limit of ten, to be used for miscellaneous channels, (2) one named IMS_POOL with a job limit of two, to be used for running ims-ms channel jobs, and (3) one named SMTP_POOL with a job limit of ten, to be used for outbound TCP/IP SMTP/LMTP channel jobs.

The following figure shows a default configuration in Unified Configuration.

Sample Job Controller option settings in Unified Configuration



msconfig> show job_controller
role.job_controller.tcp_ports = 27442                                            (3)
role.job_controller.job_pool:DEFAULT.job_limit = 10                              (5),(6)
role.job_controller.job_pool:IMS_POOL.job_limit = 2                        
role.job_controller.job_pool:SMTP_POOL.job_limit = 10 
role.job_controller.channel_class:bitbucket.master_command = IMTA_BIN:bitbucket  (7)
role.job_controller.channel_class:bsmtp*.master_command = IMTA_BIN:bsout_master  (8)
role.job_controller.channel_class:bsmtp*.slave_command = IMTA_BIN:bsin_master    (8)
role.job_controller.channel_class:conversion*.master_command = IMTA_BIN:conversion 
role.job_controller.channel_class:defragment.master_command = IMTA_BIN:defragment 
role.job_controller.channel_class:filter_discard (novalue)                       (11)
role.job_controller.channel_class:hold.master_command = IMTA_BIN:reprocess 
role.job_controller.channel_class:ims-ms*.master_command = IMTA_BIN:ims_master   (9)
role.job_controller.channel_class:ims-ms*.max_life_askwork = 20000               (9)
role.job_controller.channel_class:ims-ms*.max_life_time = 14400                  (9)
role.job_controller.channel_class:native.master_command = IMTA_BIN:l_master 
role.job_controller.channel_class:pipe*.master_command = IMTA_BIN:pipe_master 
role.job_controller.channel_class:process*.master_command = IMTA_BIN:reprocess 
role.job_controller.channel_class:reprocess*.master_command = IMTA_BIN:reprocess 
role.job_controller.channel_class:sms*.master_command = IMTA_BIN:sms_master 
role.job_controller.channel_class:tcp_*.master_command = IMTA_BIN:smtp_client    (10)
role.job_controller.channel_class:uucp_*.master_command = IMTA_BIN:uucp_master 
role.job_controller.channel_class:uucp_*.slave_command = IMTA_BIN:uucp_slave 
instance.job_controller.secret (suppressed)                                      (1)

In legacy configuration, the Job Controller configuration is stored in a file, job_controller.cnf. And in legacy configuration, this Job Controller configuration file is required. If it is not present or its contents are incorrect the Job Controller will not start.

There is no need to modify the Job Controller configuration settings (the Job Controller configuration file in legacy configuration), unless you choose to add pools, modify pool parameters, modify global Job Controller settings (such as debugging), or add processing information for locally developed channels.

In legacy configuration, if you do wish to make such modifications, you should not alter the Job Controller configuration file itself (since it will be replaced when you upgrade the MTA and in legacy configuration you will lose your modifications), but rather should create a job_controller.site file in the MTA table directory containing your own definitions. The Job Controller configuration file will read in this site supplied file, if it exists.

A sample Job Controller configuration file is shown below.


! 
! Global defaults 
! 
SECRET=abc123      (1)
SLAVE_COMMAND=NULL (2)
TCP_PORT=27442     (3)
! 
! Site specific pools and channnels are read 
! indirectly if this include file exists. 
! 
<IMTA_TABLE:job_controller.site  (4)
! 
! Pool definitions 
! 
[POOL=DEFAULT]  (5)
JOB_LIMIT=10    (6)
! 
[POOL=IMS_POOL] 
JOB_LIMIT=2 
! 
[POOL=SMTP_POOL] 
JOB_LIMIT=10 
! 
! Channel definitions 
! 
[CHANNEL=bitbucket]     (7)
MASTER_COMMAND=IMTA_BIN:bitbucket 
! 
[CHANNEL=bsmtp*]        (8)
MASTER_COMMAND=IMTA_BIN:bsout_master 
SLAVE_COMMAND=IMTA_BIN:bsin_master 
! 
[CHANNEL=conversion*]   
MASTER_COMMAND=IMTA_BIN:conversion 
! 
[CHANNEL=defragment] 
MASTER_COMMAND=IMTA_BIN:defragment 
! 
[CHANNEL=ims-ms*]       (9)
MAX_LIFE_AGE=14400 
MAX_LIFE_CONNS=20000 
MASTER_COMMAND=IMTA_BIN:ims_master 
! 
[CHANNEL=native] 
MASTER_COMMAND=IMTA_BIN:l_master 
! 
[CHANNEL=pipe*] 
MASTER_COMMAND=IMTA_BIN:pipe_master 
! 
[CHANNEL=process*] 
MASTER_COMMAND=IMTA_BIN:reprocess 
! 
[CHANNEL=sms*] 
MASTER_COMMAND=IMTA_BIN:sms_master 
! 
[CHANNEL=tcp_*]         (10)
MASTER_COMMAND=IMTA_BIN:smtp_client 
! 
[CHANNEL=reprocess*] 
MASTER_COMMAND=IMTA_BIN:reprocess 
! 
[CHANNEL=uucp_*] 
MASTER_COMMAND=IMTA_BIN:uucp_master 
SLAVE_COMMAND=IMTA_BIN:uucp_slave 
! 
[CHANNEL=hold] 
MASTER_COMMAND=IMTA_BIN:reprocess 
! 
[CHANNEL=filter_discard]  (11)

The key items in the above examples are:

  1. This global option sets a "secret" used on this host by the Job Controller to verify its internal communications.
  2. Set a default SLAVE_COMMAND for subsequent [CHANNEL] sections.
  3. This global option defines the TCP port number on which the Job Controller listens for requests.
  4. Attempt to include the optional, site-supplied job_controller.site file (in which sites may place their site-specific customizations, so as to retain such customizations after upgrading).
  5. This [POOL] section defines a queue named "DEFAULT". This pool will be used by all channels which do not specify a pool name using the pool channel option.
  6. Set the JOB_LIMIT for this pool to 10.
  7. This [CHANNEL] section applies to a channel named bitbucket. The only definition required in this section is the MASTER_COMMAND which the Job Controller issues to run this channel. (Note that the bitbucket channel normally never needs to run, so normally this image is never executed, since in normal use messages supposedly "enqueued" to the bitbucket channel are instead merely deleted---however, a bitbucket channel image does exist to delete messages, and if a message does exist in the bitbucket channel queue, perhaps due to being manually placed there by the MTA administrator, then this channel image can "process" it ---that is, delete it.) Since no wildcard appears in the channel name, the channel name must match exactly.
  8. This [CHANNEL] section applies to any channel whose name begins with bsmtp_*. For this channel, both a MASTER_COMMAND and a SLAVE_COMMAND are necessary. Since this channel name includes a wildcard, it will match any channel whose name begins with "bsmtp_".
  9. This [CHANNEL] section applies to any channel whose name begins with ims-ms*. For this channel, used to deliver to the Messaging Server Message Store, it is a good idea to set the max_life_time (formerly MAX_LIFE_AGE) and max_life_askwork (formerly MAX_LIFE_CONNS) Job Controller (channel class) options to let the channel jobs "persist" (rather than being "recycled" in favor of a new channel job) for relatively extended periods.
  10. This [CHANNEL] section applies to any channel whose name begins with tcp_*; this includes SMTP over TCP/IP and LMTP over TCP/IP channels. This section only defines (the Job Controller only knows/cares about) a MASTER_COMMAND defining the SMTP/LMTP client "half" of any such channel; the slave "half" of any such channel (SMTP servers or LMTP servers) is handled by the Dispatcher.
  11. This [CHANNEL] section applies to the filter_discard channel. The absence of any MASTER_COMMAND in this section is intentional.


See also: