On Wed, 23 Apr 1997, mark david mcCreary wrote:
> I am in the process of delivering a message to 8,000 people via Exim and
> Smartlist. I used the forward file director to grab the file of 8,000
> names.
8,000 names in *one* message? Phew!
> It took approximately an hour of wall clock time to pre-process this list
> before it started delivering. During this time, it kicked out a dozen or
> two addresses that did not have an MX record, or the host name was unknown.
Exim does all its routing before any deliveries. Had you split it up
into, say 80 messages, several of them would have been routing
simultaneously.
> Then it started delivering the mail, and I say the remote_max_parallel
> gadget kick in, as suddenly 5 jobs are processing this queue. It delivered
> approx 1,000 messages, and then all 5 or 6 queues got stuck delivering to
> aol.com.
Unless you have changed the max_rcpt option in the smtp transport, this
must mean there are several hundred aol.com recipients on your list, as
Exim will pack up 100 at a time into each connection.
aol.com has 7 MX records, and they point to more than one machine each,
so there are very many machines to try for an aol.com address (14 hosts
times 4 minutes connect timeout = nearly an hour). When you configure
Exim to deliver in parallel, a delivery process has no knowledge of
failures in other deliveries running in parallel, so will try all the
same hosts. (Subsequently-started deliveries should be aware of hosts
that have failed, however.)
Another point is that the retry database is not updated until the whole
delivery is complete (for efficiency and minimizing the time it is open;
all failures in the one delivery are recorded at once). Thus any other
Exim processes won't see the data till this process finishes.
> Any suggestions on how to work around this in the future ?
As well as splitting into more than one message, you could also try
putting all the aol.com addresses into a single message, thereby
confining the effects of delays to those addresses only.
> Is there any way to control the queues, so that multiple queues don't try
> to deliver to the same mail host ?
There is a serialize_hosts option in the smtp transport, which prevents
more than one connection to the same host, but I don't think it is
helpful here, because presumably it was failing to connect to the aol
hosts.
Exim doesn't really have "queues". It should only try multiple
deliveries to the same host if it has more addresses than it is prepared
to send down one SMTP connection. You could try setting max_rcpt to 1000
(say); the default value of 100 was chosen because that is one of the
minima in the RFC.
Regards,
Philip
--
Philip Hazel University Computing Service,
ph10@??? New Museums Site, Cambridge CB2 3QG,
P.Hazel@??? England. Phone: +44 1223 334714