In accordance with the format of IMTA option files, the job controller configuration file contains lines of the form:
option=value
In addition to option settings, the file may contain a line consisting of a section and value enclosed in square-brackets ([ ]) in the form:
[section-type=value]
Such a line indicates that option settings following this line apply only to the section named by value. Initial option settings that appear before any such section tags apply globally to all sections. Per section option settings override global defaults for that section. Recognized section types for the job controller configuration file are QUEUE, to define queues and their parameters, and CHANNEL, to define channel processing information.
The following is a sample job controller configuration file (job_controller.cnf).
The key items in the preceding example (numbered, enclosed in parentheses, and in bold font) are:
1. | This global option defines the UDP port number on which the job controller listens for requests. | |
2. | Sets a default SLAVE_COMMAND for subsequent [CHANNEL] sections. | |
3. | Sets a default CAPACITY for subsequent [QUEUE] sections. | |
4. | This [QUEUE] section defines a queue named DEFAULT. Since this is the first queue in the configuration file, it is used by all channels that do not specify a queue name using the queue channel keyword. | |
5. | Set the JOB_LIMIT for this queue to 10. | |
6. | This [CHANNEL] section applies to a channel named l, the IMTA local channel. The only definition required in this section is the master_command, which the job controller issues to run this channel. Since no wild card appears in the channel name, the channel must match exactly. | |
7. | This [CHANNEL] section applies to any channel whose name begins with tcp_*. Since this channel name includes a wild card, it will match any channel whose name begins with tcp_. |
The available options are:
CAPACITY=integer
Specifies the maximum number of outstanding requests that a queue can hold. Additional requests beyond the CAPACITY of the queue are ignored. Exceeding the CAPACITY of a queue does not affect the ability of another queue to buffer outstanding requests until that queue's CAPACITY is exceeded. If set outside of a section, it is used as the default by any [QUEUE] section that doesn't specify CAPACITY. This option is ignored inside of a [CHANNEL] section.
DEBUG=0 or 1
If DEBUG=1 is selected, IMTA writes debugging information to a file in the
/var/opt/SUNWmail/imta/log directory named job_controller-uniqueid, where uniqueid is a unique ID string that distinctively identifies the file name. The purge utility recognizes the uniqueids and can be used to remove older log files.)JOB_LIMIT=integer
Specifies the maximum number of requests that a queue can execute in parallel. Execution of a request uses a UNIX system process, so this corresponds to the maximum number of UNIX system processes you allow a queue to use. If more requests are present for a queue, they are held until an executing job finishes, unless the CAPACITY of the queue is exceeded. The JOB_LIMIT applies to each queue individually; the maximum total number of jobs is the sum of the JOB_LIMIT parameters for all queues. If set outside of a section, it is used as the default by any [QUEUE] section that doesn't specify JOB_LIMIT. This option is ignored inside of a [CHANNEL] section.
MASTER_COMMAND=file specification
Specifies the full path to the command to be executed by the UNIX system process created by the job controller in order to run the channel and dequeue messages outbound on that channel. If set outside of a section, it is used as the default by any [CHANNEL] section that doesn't specify a MASTER_COMMAND. This option is ignored inside of a [QUEUE] section.
SLAVE_COMMAND=file specification
Specifies the full path to the command to be executed by the UNIX system process created by the job controller in order to run the channel and poll for any messages inbound on the channel. Many IMTA channels do not have a SLAVE_COMMAND. If that is the case, the reserved value NULL should be specified. If set outside of a section, it is used as the default by any [CHANNEL] section that doesn't specify a SLAVE_COMMAND. This option is ignored inside of a [QUEUE] section.
UDP_PORT=integer
Specifies the UDP port on which the job controller should listen for request packets. Do not change this option unless the default conflicts with another UDP application on your system. If you do change this option, be sure to change the corresponding IMTA_JBC_SERVICE option in the IMTA tailor file,
/etc/opt/SUNWmail/imta/imta_tailor, so that it matches. The UDP_PORT option applies globally and is ignored if it appears in a [CHANNEL] or [QUEUE] section.
A master_shutdown command may be associated with each channel that contains master programs. This will be the command to stop the master program if the job controller is stopped. Such commands are useful for master programs which run like daemons. The format is:
master_shutdown = path
path is the full pathname to the shutdown executable.