Keywords: alternatechannel, alternateblocklimit, alternatelinelimit, alternaterecipientlimit
The MTA provides the ability to retarget messages that exceed a specified limit on the number of recipients, message size, or message lines to an alternate destination channel. This is implemented as a set of the following channel keywords alternatechannel, alternateblocklimit, alternatelinelimit, and alternaterecipientlimit that can be placed on any destination channel. The alternatechannel keyword takes a single argument specifying the name of the alternate channel to use. The other keywords each accept an integer argument specifying a corresponding threshold. A message that exceeds any of these thresholds will be enqueued to the alternate channel instead of the original destination channel.
In the following channel block example, large messages over 5,000 blocks, that would have gone out the tcp_local channel to the Internet, instead go out the tcp_big channel:
tcp_local smtp ... other keywords... alternatechannel tcp_big alternateblocklimit 5 tcp-daemon tcp_big smtp ...rest of keywords... tcp-big-daemon |
tcp_local smtp ...other keywords... alternatechannel tcp_big alternateblocklimit 5 tcp-daemon tcp_big smtp ...rest of keywords... tcp-big-daemon |
Here are some examples of how the alternate* channel keywords can be used:
If you want to deliver large messages at a delayed or an off-hours time, you can control when the alternatechannel (for example, tcp_big) runs.
One method is to use the imsimta qm utility’s STOP channel_name and START channel_name commands, executing these commands periodically via your own custom periodic job that is run by the Job Controller or via a cron job.
When you want the Job Controller to process large messages or messages with many recipients in their own pool, you might also use the alternatechannel.
You can separate small messages or messages with few recipients from the large messages or messages with many recipients, since the latter might take longer for remote SMTP servers to process and accept; you might not want the larger messages to delay delivery of the smaller messages.
Note that the Job Controller’s regular scheduling of messages and assigning of messages to threads and processes are acceptable in most configurations.
When you want to set special TCP/IP channel time-out values for large messages or for messages with many recipients, you can use the alternatechannel.
In particular, setting special TCP/IP channel time-out values can be helpful if you want to send messages to remote hosts that take exceptionally long to receive large messages or messages with many recipients.
Note that the default automatic time-out adjustment should be sufficient for most configurations. At most, you might want to adjust the values from the defaults and not use a special channel. In particular, see the channel options STATUS_DATA_RECV_PER_ADDR_TIME and STATUS_DATA_RECV_PER_BLOCK_TIME in the Sun Java System Messaging Server 6.3 Administration Reference.
When you want special MIME message fragmentation for especially large messages, you can use the alternatechannel and the alternateblocklimit channel keywords along with the maxblocks channel keyword.
Typically, you would put the desired maxblocks size on your regular outbound TCP/IP channels, when you want to fragment messages over a specified size. The maxblocks channel keyword is normally both the threshold at which to perform fragmentation and the size to make the fragments.
But, if you want to have a larger threshold trigger and make smaller actual fragments, you can use the alternatechannel and alternateblocklimit on the outbound TCP/IP channel. You can then use the maxblock size on your alternate channel to fragment messages over a particular size.
You might use the alternatechannel in conjunction with special filtering. For instance, a message with many recipients might need more careful scrutiny of its content in case it is spam. You might want to do different filtering based on the outgoing channel (See the destinationfilter channel keyword in 12.12.4 Specifying Mailbox Filter File Location.
If you are performing relatively resource-intensive scanning (such as virus filtering) via the conversion channel, very large messages might have a resource issue. You might want to use an alternate conversion channel. Or, you might want to do special conversion procedures within the regular conversion channel, based on the outgoing channel.
You can use the alternatechannel when you want large outgoing messages to go out their own channel, so that they stand out when you analyze the mail.log* file or in counters displays.
Furthermore, if you are trying to do careful analysis of delivery statistics, it is useful to process large messages in their own channel. This is because large messages or messages with many recipients that are sent to remote SMTP hosts are likely to take longer to finish processing, thus creating different delivery statistics for larger messages than for typical messages.