Sun Java System Messaging Server 6.3 Administration Reference

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:


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 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.