Job Controller Configuration
At startup, the Job Controller reads a configuration file that specifies
parameters, pools, and channel processing information. This configuration
information is specified in the file job_controller.cnf in
the msg-svr-base/config/ directory.
For more information on the Job Controller, see the Chapter 10, About MTA Services and Configuration, in Sun Java System Messaging Server 6.3 Administration Guide.
Job Controller Configuration File
In accordance with the format of the MTA option files, the Job Controller configuration file contains lines of the form:
In addition to option settings, the file may contain a line consisting
of a section and value enclosed in square-brackets ([ ]) in the form:
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 POOL, to define pools and their parameters, and CHANNEL, to define channel processing information and PERIODIC_JOB for the various periodic jobs started by the Job Controller. The PERIODIC_JOB is deprecated and will be removed in a future release.
Use the local.schedule.periodic_job configutil parameter
instead.
Any options permitted on POOL or CHANNEL sections
can be specified at the beginning (general options), thus becoming the default
for the option.
The Job Controller configuration file options are described in the following three tables
(Table 4–24, Table 4–25, and Table 4–26). They are split into general options, pool options, and channel
options groups.
Table 4–24 shows the general
Job Controller configuration options.
Table 4–24 General Job Controller Configuration
File Options
Option
|
Description
|
COMMAND
|
Specifies the command to be run periodically in a PERIODIC_JOB section.
The PERIODIC_JOB is deprecated and will be removed
in a future release. Use the local.schedule.periodic_job configutil parameter instead.
|
DEBUG=integer
|
If DEBUG is set to a value other than zero, the MTA
writes debugging information to a file in the msg-svr-base/imta/log directory named job_controller-uniqueid, where uniqueid is a unique
ID string that distinctively identifies the file name. The imsimta purge utility recognizes the uniqueids and can be used to remove older log files. The value for DEBUG is a bit mask specifying what sort of debugging information
is requested:
-
1—Trace protocol messages between
the Job Controller and other MTA components.
-
2—More detailed analysis of the messages
and interactions.
-
4—State change events.
-
8—Trace rebuild decisions.
-
16—Dump each queue on every queue
action.
-
32—Be cautious about deleting items
from queues.
-
64—Perform queue integrity check
on every queue operation
-
128—Verbose output about operation
of select.
Specifying bit value 16 can cause
log files to grow very quickly. Specifying 32 does not
generate any more output, and should only be used in extreme cases. If DEBUG is not specified, it defaults to 0.
|
INTERFACE_ADDRESS=adapter
|
Specifies the IP address interface to which the Job Controller should
bind. The value specified (adapter) can be one of ANY, ALL, LOCALHOST, or an IP address. By default
the Job Controller binds to all addresses (equivalent to specifying ALL or ANY). Specifying INTERFACE_ADDRESS=LOCALHOST means
that the Job Controller only accepts connections from within the local machine.
This does not affect normal operation, since no inter-machine operation is
supported by the Job Controller. However, this may be inappropriate in an
HA environment where an HA agent may be checking if the Job Controller is
responding. If the machine on which the Messaging Server is running is in
an HA environment, has an “internal network” adapter and an “external
network” adapter, and you are not confident of your firewall’s
ability to block connections to high port numbers, you should consider specifying
the IP address of the “internal network” adapter.
|
MAX_MESSAGES=integer
|
The Job Controller keeps information about messages in an in-memory
structure. In the event that a large backlog builds, it may need to limit
the size of this structure. If the number of messages in the backlog exceeds
the parameter specified here, information about subsequent messages is not
kept in memory. Mail messages are not lost because they are always written
to disk, but they are not considered for delivery until the number of messages
known by the Job Controller drops to half this number. At this point, the
Job Controller scans the queue directory mimicking an imsimta cache
-sync command.
The minimum value is 10.
The default is 100000.
|
REBUILD_IN_ORDER
|
If set to a non-zero value, then on startup the job controller adds
previously untried ZZ* messages to the delivery queue in
creation order. Previous (and default) behavior is to add the messages in
the order in which they are found on disk. There is a cost associated with
recreating the queues in order.
|
SECRET=file_spec
|
Shared secret used to protect requests sent to the Job Controller.
|
SYNCH_TIME=time_spec
|
The Job Controller occasionally scans the queue files on disk to check
for any new message files that are missing from the Job Controller’s
list of messages that need to be added. By default, this takes place every
four hours, starting four hours after the Job Controller is started. The format
of the time_spec is HH:MM/hh:mm or /hh:mm. The variable hh.mm is the interval between the events
in hours (h) and minutes (m).
The variable HH:MM is
the first time in a day the even should take place. For example specifying,
15:45/7:15 starts the event at 15:45 and every seven hours and fifteen minutes
from then.
|
TCP_PORT=integer
|
Specifies the TCP port on which the Job Controller should listen for
request packets. Do not change this unless the default conflicts with another
TCP application on your system. If you do change this option, change the corresponding IMTA_JBC_SERVICE option in the MTA tailor file, msg-svr-base/config/imta_tailor, so that it matches.
The TCP_PORT option applies globally and is ignored if
it appears in a [CHANNEL] or [POOL]
section.
|
TIME=time_spec
|
Specifies the time and frequency that a periodic job is run in a PERIODIC_JOB section. By default, this is /4:00, which means every four hours.
The format of time_spec is HH:MM/hh:mm or /hh:mm. hh.mm is
the interval between the events in hours (h) and
minutes (m). HH:MM is the first time in a day that a job should occur. For example,
specifying 15:45/7:15 starts the event at 15:45 and every seven hours and
fifteen minutes from then. The PERIODIC_JOB is deprecated
and will be removed in a future release. Use the local.schedule.periodic_job configutil parameter instead.
|
Table 4–25 describes the POOL option for the Job Controller configuration.
Table 4–25 Job Controller
POOL Option
Option
|
Description
|
JOB_LIMIT=integer
|
Specifies the maximum number of processes that the pool can use simultaneously
(in parallel). The JOB_LIMIT applies to each pool individually;
the maximum total number of jobs is the sum of the JOB_LIMIT parameters
for all pools. If set outside of a section, it is used as the default by any
[POOL] section that doesn’t specify JOB_LIMIT.
This option is ignored inside of a [CHANNEL] section.
|
Table 4–26 describes the CHANNEL options for the Job Controller configuration.
Table 4–26 Job Controller
CHANNEL Options
Option
|
Description
|
MASTER_COMMAND=file_spec
|
Specifies the full path to the command to be executed by the UNIX system
process created by the Job Controller 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 [POOL]
section.
|
MAX_LIFE_AGE=integer
|
Specifies the maximum life time for a channel master job in seconds.
If this parameter is not specified for a channel, then the global default
value is used. If no default value is specified, 14400 (240
minutes) is used.
|
MAX_LIFE_CONNS=integer
|
In addition to the maximum life age parameter, the life expectancy of
a channel master job is limited by the number of times it can ask the Job
Controller if there are any messages. If this parameter is not specified for
a channel, then the global default value is used. If no default value is specified, 300 is used.
|
NONURGENT_DELIVERY=time
|
Allows the delivery of non-urgent messages to be scheduled only between
certain times as configured. The value is, a set of up to five time windows
separated by a comma. Each time window is either a daily window, of the form
hh:mm - hh:mm, or is a weekly window of the form day hh:mm - day hh:mm or
day hh:mm - hh:mm. In this last case the window is assumed to end on the same
day that it began.
Examples of windows are:
18:00 - 22:00 which means between 6pm and 10pm each day
20:00 - 06:30 which means between 8pm and 6:30am each night
Sat 06:15 - 15:30 which means each Saturday between 6:15am and 3:30pm
Wed 12:00 - Fri 00:00 which means between noon Wednesday and midnight between Thursday and Friday.
Thus to specify that delivery can be attempted at night or at weekends, you could specify 22:00 - 05:30, Sat 00:00 - Sun 23:59
|
Up to 5 windows can be specified for each priority levels.
|
NORMAL_DELIVERY=time
|
Allows the delivery of non-urgent messages to be scheduled only between
certain times as configured. The value is, a set of up to five time windows
separated by a comma. Each time window is either a daily window, of the form
hh:mm - hh:mm, or is a weekly window of the form day hh:mm - day hh:mm or
day hh:mm - hh:mm. In this last case the window is assumed to end on the same
day that it began.
Examples of windows are:
18:00 - 22:00 which means between 6pm and 10pm each day
20:00 - 06:30 which means between 8pm and 6:30am each night
Sat 06:15 - 15:30 which means each Saturday between 6:15am and 3:30pm
Wed 12:00 - Fri 00:00 which means between noon Wednesday and midnight between Thursday and Friday.
Thus to specify that delivery can be attempted at night or at weekends, you could specify 22:00 - 05:30, Sat 00:00 - Sun 23:59
|
Up to 5 windows can be specified for each priority levels.
|
SLAVE_COMMAND=file_spec
|
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. Most MTA 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 [POOL] section.
|
URGENT_DELIVERY=time
|
Allows the delivery of non-urgent messages to be scheduled only between
certain times as configured. The value is, a set of up to five time windows
separated by a comma. Each time window is either a daily window, of the form
hh:mm - hh:mm, or is a weekly window of the form day hh:mm - day hh:mm or
day hh:mm - hh:mm. In this last case the window is assumed to end on the same
day that it began.
Examples of windows are:
18:00 - 22:00 which means between 6pm and 10pm each day
20:00 - 06:30 which means between 8pm and 6:30am each night
Sat 06:15 - 15:30 which means each Saturday between 6:15am and 3:30pm
Wed 12:00 - Fri 00:00 which means between noon Wednesday and midnight between Thursday and Friday.
Thus to specify that delivery can be attempted at night or at weekends, you could specify 22:00 - 05:30, Sat 00:00 - Sun 23:59
|
Up to 5 windows can be specified for each priority levels.
|