Expandlimit, expandchannel, holdlimit Channel Options

From MsgServerDocWiki

Jump to: navigation, search


Expansion of multiple addresses (expandlimit, expandchannel, holdlimit)

Most MTA channels support the specification of multiple recipient addresses in the transfer of each inbound message. The specification of many recipient addresses in a single message may result in delays in message transfer processing ("on-line" delays). In particular, multi-recipient messages that require a great deal of processing of the message body can be affected by processing delays, or that require creation of many different file copies on disk in the MTA queue area can be affected by slow disk performance. If the resulting delays are long enough, network timeouts can occur, which in turn can lead to repeated message submission attempts and other problems.

The MTA provides a special facility to force deferred ("off-line") processing of additional recipient message copies once a given number of addresses are specified for a single message. The deferral happens after processing of the "initial" recipients (those before the expandlimit value was reached), and after address processing for the additional recipients too, (for instance, after *_ACCESS mapping table checks and after alias processing), but before message processing. In particular, such deferral means that for the "additional" recipients, only one message file (storing all of the "additional" recipients), is written to the queue area (to a reprocess* or process* channel queue area, depending upon use of the expandchannel channel option). Deferral of message processing can decrease on-line delays enormously. Note, however, that the processing overhead is deferred, not avoided completely.

This special facility is activated by using a combination of, for instance, the generic reprocessing channel and the expandlimit channel option. The expandlimit option takes an integer argument that specifies at what number of recipients to begin deferring processing of the message copy (or copies) to that and additional recipient addresses. The default value is effectively infinite if the expandlimit channel option is not specified. A value of 1 will force deferred processing on all incoming addresses from the channel.

The expandlimit channel option must not be specified on the local channel or the reprocessing channel itself; the results of such a specification are unpredictable.

The channel actually used to perform the deferred processing may be specified using the expandchannel channel option; the reprocessing channel is used by default, if expandchannel is not specified, but use of some other reprocessing or processing channel may be useful for some purposes. In particular, for Sun ONE Messaging Server MTA versions 5.2 and earlier, typical configuration usage required that a processing channel, rather than a reprocessing channel, be used. If a channel for deferred processing is specified via expandchannel, that channel should be a reprocessing or processing channel; specification of other sorts of channels may lead to unpredictable results.

The reprocessing channel, or whatever channel is used to perform the deferred processing, must be added to the MTA configuration file in order for the expandlimit option to have any effect. If your configuration was built by the initial configuration utility, then you should already have a reprocessing channel.

(Note that typical Messaging Server sites running version 5.2 or earler could not use the expandlimit option unless they also marked the affected channel expandchannel process (or expandchannel process_somethingorother redirecting the expansion to an alternate process_* sort of channel), as enqueues to a channel marked viaaliasrequired would not succeed if deferred to a reprocess* channel.)

Extraordinarily large lists of recipient addresses are often a characteristic of so-called SPAM---junk e-mail. The holdlimit channel option tells the MTA that messages coming in the channel that result in more than the specified number of recipients should be marked as .HELD messages and enqueued to the reprocess channel (or to whatever channel is specified via the expandchannel channel option). As .HELD messages, the files will sit unprocessed in that MTA queue area awaiting manual intervention by the MTA postmaster.

Personal tools