Monday, August 29, 2016

Exchange 2010 (SP3) - Message Tracking - 04

In reverse order of complexity, I finished by sending a message from one internal user (Alan Reid) to another internal user (Alannah Shaw) who both have their mailbox in the same mailbox database. I then replied to the message.

As a reminder, we have two Exchange servers (EX13-1 and EX13-2) configured in a Database Availability Group (DAG) with the active copy of the (sole) mailbox database currently on EX13-2.

First message - Alan Reid to Alannah Shaw

The Message Tracking logs on EX13-2 show two events (EventID): a NOTIFYMAPI event which provides some information about the message and then a SUBMIT event.

Note: I had not included the NOTIFYMAPI events in my previous blog posts but will show one example below simply so we can see what it looks like. And once again, I have edited out some parameters (essentially those without values) for simplicity and concision.


So Alan Reid sends a message to Alannah Shaw: "int to int 1".

As we just said, there is a NOTIFYMAPI event and then a SUBMIT event:

[PS] C:\>get-messagetrackinglog -Server "EX13-2" -Start "8/27/2016 10:45:00 PM" -End "8/27/2016 11:00:00 PM" | fl

Note: yes, you can click to enlarge.

According to one discussion I followed, it appears that the first entry is associated with the Mailbox role that notifies the Hub Transport role of the presence of a message (in the Outbox of the user?).

Then the Mailbox role submits the message.

Note: the STOREDRIVER is in fact a component of the Transport role.
We should keep in mind that the Hub Transport role is responsible for ALL message delivery, even when a message goes from one mailbox to another in the same mailbox database.

In that context, it is interesting to observe (in the screenshot above) that the Hub Transport role on EX13-2 (where the active copy of the mailbox database is located) submits the message to EX13-1 (here again, the Hub Transport role manages the mail flow).

But what happens next? To see, we have to change our perspective to EX13-1 where the message is briefly in transit (presumably in the Transport database - yes there is a transport database also, where messages reside for a more or less short period while in transit).


In the two screenshots below, we see that EX13-1 receives the message from EX13-2 (EventID = RECEIVE) and then delivers the message to the recipient Alannah Shaw (EventID = DELIVER).

Since there is no DELIVER event in the EX13-2 message tracking logs, it seems clear that EX13-1 places the message in the recipient mailbox.

[PS] C:\>get-messagetrackinglog -Server "EX13-1" -Start "8/27/2016 10:45:00 PM" -End "8/27/2016 11:00:00 PM" | fl

Second Message - Alannah Shaw to Alan Reid (reply)

For the reply, the message sequence is the same. I'll post the screenshots all the same so you can compare yourself.


[PS] C:\>get-messagetrackinglog -Server "EX13-2" -Start "8/27/2016 11:00:00 PM" -End "8/27/2016 11:30:00 PM" | fl


[PS] C:\>get-messagetrackinglog -Server "EX13-1" -Start "8/27/2016 11:00:00 PM" -End "8/27/2016 11:30:00 PM" | fl


There is an abundance of additional information related to the Hub Transport role and mail flow online. In particular, there is a chart that helps visualize the processing of messages, the "Overview of the transport pipeline in Exchange 2010" chart available here:

This article by Jaap Weeselius also provides another perspective on the various components of the Hub Transport role (MSEXCHANGE.ORG):

No comments:

Post a Comment