|
Tech Support
Internet Exchange Frequently Asked Questions
Internet Exchange Messaging Server
SMTPC Queuing System
Overview
Each machine running SMTPC is capable of maintaining
multiple simultaneous outbound SMTP connections. The Internet Exchange Messaging
Server's SMTPC Module features an innovative approach to queue management that supports
server-side ETRN requests and provides a mechanism for message priority handling.
This architecture guarantees not only high throughput, but also the orderly handling of
messages of different priorities. The module comes with the SMTPC Queue
Router, which retrieves outgoing messages from the Message Switch and determines whether
they should be routed to the Pending Queue or to the Deferred Queue. A shared
message queue structure is designed for these queues, so as to achieve efficient usage of
system memory. Each queue can have one or more queue processors active at a time,
each of which will further create multiple SMTPC worker threads to process multiple
simultaneous outbound messages and send them to their next destination across the
Internet.
Pending
Queue
Newly arrived messages that must be sent out immediately are placed in the Pending Queue.
These messages are then processed by the Pending Queue Processors, which attempt delivery
via SMTP. If the delivery of a message in the Pending Queue is unsuccessful, it is passed
on to the Deferred Queue so it can be delivered at a later time. Messages that are
destined for intermittently connected hosts with ETRN support, such as dialup accounts,
completely bypass the Pending Queue and are sent directly to the Deferred Queue.
The queue run interval for each Pending Queue Processor can be configured by the system
administrator. In addition, the administrator can define the maximum number of Pending
Queue Processors that run concurrently and the number of messages to be processed by each
processor during each queue run. Each Pending Queue Processor is capable of creating
multiple threads for handling multiple SMTP sessions.
Deferred
Queue
Messages that are intentionally deferred or whose previous delivery attempt(s) have failed
are placed in the Deferred Queue. Messages in the Deferred Queue are further grouped into
different SMTP domain channels using information in the recipient addresses. This allows
server-side ETRN support and prevents deferred messages from delaying the processing of
new messages. A message is placed in the Deferred Queue if any of the following conditions
is encountered:
- The destination domain is a predefined ETRN SMTP domain. Dialup SMTP hosts connect to
the Internet intermittently, and attempting to deliver messages to such hosts when they
are not connected to the Internet will fail.
- There is a temporary DNS error during the domain name resolution process.
- A destination host is found but SMTP connection cannot be established.
- The destination SMTP server issues a temporary SMTP response code.
- The SMTP connection is aborted prematurely due to network problems.
- The destination SMTP server did not reply within the configured time.
Messages in the Deferred Queue are processed by the Deferred Queue
Processors on a per channel basis. During each scheduled queue run time, one or more
Deferred Queue Processors are created for every SMTP domain channel by the SMTPC Module to
handle deferred outgoing messages. The messages for each SMTP domain channel are processed
according to their message priority weight. SMTPC will attempt to deliver the first
message from each SMTP Domain Channel. If the delivery attempt is successful, the Queue
Processor will create other child SMTPC threads to deliver subsequent messages. Otherwise,
all subsequent messages in the entire channel will remain queued. This approach greatly
improves the overall efficiency of resource usage by eliminating unnecessary message
delivery attempts.
It is advisable to queue all the messages for a particular domain (such
as ETRN domains) before attempting delivery. When an ETRN host is connected, it makes an
ETRN request to SMTPD, which notifies SMTPC. SMTPC then starts a Deferred Queue Processor
to deliver all queued messages for this domain immediately. Since the messages for this
domain are already grouped, this approach ensures less processing time and fast delivery.
|