So, over the weekend my users stopped getting mail from external senders. No one reported it until yesterday; I happened to be in Redmond teaching the MCM Exchange UM course, so I didn’t find out about it this morning. A quick check of the queues revealed that there was no mail backing up on any of the Exchange servers, so I sent a few test messages. The test messages never arrived. However, mail from internal users was arriving just fine. “Couldn’t be back pressure,” I reasoned, “because the server’s still accepting connections.”
I dug a little deeper and found that our Linux MX host had a ton of queued mail– all with “4.3.1 insufficient system resources” errors . Of course, that was a dead giveaway. I checked the system event log, found an event 15006 from Saturday night: low disk space had forced Exchange to stop accepting messages. After a little disk fu, the transport service again began accepting messages– but why was any mail arriving?
It turns out that Exchange 2010 back pressure handling has a major difference from Exchange 2007. In 2007, if disk space or CPU become a bottleneck, the transport will stop accepting SMTP connections. In Exchange 2010, it will still accept the connections, it just won’t accept the messages. There are also some nuances (explained here), too. For example, the transport will attempt to keep accepting messages from other Exchange servers unless resources get really, really tight; the first thing it stops doing is accepting messages from external servers.
Exchange 2010 can also throttle the flow of incoming messages as a back pressure reliever, but that’s a topic for another day…