none
If Exchange Mail Transport Agent will cause Exchange server crash or hang. RRS feed

  • Question

  • Hi, Friends

    We want to develop a Mail Transport Agent (exchange plugin) , but we worry about Reliability and stability of exchange server after install our own MTA.   I can't find any offical document to explain such case, so i have two questions.

    1: if MTA hang/crash, what's happen ,if exchange server will hang/crash because of the MTA at the same time ?

    2: Do you know the workflow of how exchange handle the exception that happens in MTA?

    Thx.


    • Edited by Tonny_Qitai Tuesday, October 20, 2015 1:27 AM MTA make things confused
    Monday, October 19, 2015 8:52 AM

Answers

  • 1. Transport Agents run InProcess in the EdgeTransport process so if your code is poorly written it can cause the Transport Service to stop or delay delivery of messages. If there is problem loading your assembly at startup it can also cause the Transport Service not to start in the first place. You need to constantly testing your Transport Agent to ensure that new CU's or Service pace don't cause problems.

    2. Transport Agents are just normal .net Dll's so in regards to exception handling there is nothing special and you should follow accepted best practice and make sure all exceptions are caught and don't reference libraries that can bubble back uncaught exceptions, the thing to keep in mind is they run under the same security context as the Transport Service.

    Cheers
    Glen

    • Marked as answer by Tonny_Qitai Wednesday, October 21, 2015 9:45 AM
    Wednesday, October 21, 2015 4:15 AM

All replies

  • Hi,

    What is the reason for installing your own MTA? Have you considered using transport rules to achieve your goal?

    You should consider using multiple Exchange servers to provide high availability for the transport services. If a single server fails then the other one will still deliver emails. 

    More information about Exchange high availability is here: https://technet.microsoft.com/en-us/library/dd638137%28v=exchg.150%29.aspx.

    Thanks.


    Please mark as an answer if this answers your question

    Mark Gossa

    MCSE 2003, MCITP Enterprise Administrator 2008 R2, MCSA 2012 R2, MCTS Exchange 2010

    Blog: http://markgossa.blogspot.com

    Posts are provided “AS IS” without warranty of any kind, either expressed or implied.

    Monday, October 19, 2015 12:30 PM
  • we have some special requirement that can't be handled by transport rule ,so we want to develop our own Transport Agent (an exchange plugin) to handle that.

    Tuesday, October 20, 2015 1:26 AM
  • Hi,

    If you manage to cause the Exchange server to become unresponsive, the resulting behaviour will depend on your infrastructure. If you have high availability then the services (CAS/HT/MBX) will failover. If not then the server will remain in a failed state till an administrator intervenes. 

    If the server has a stop error (blue screen) then it will restart by default but it may be configured not to do this. 

    If only the Exchange Transport service fails then by default Exchange 2013 will restart the service immediately every time the service stops. 

    It's best to test the MTA thoroughly on a test platform before deploying in production. Also, ensure that your Exchange infrastructure is highly available to be able to tolerate failures. 

    Let me know if you have any further questions. 

    Thanks.


    Please mark as an answer if this answers your question

    Mark Gossa

    MCSE 2003, MCITP Enterprise Administrator 2008 R2, MCSA 2012 R2, MCTS Exchange 2010

    Blog: http://markgossa.blogspot.com

    Posts are provided “AS IS” without warranty of any kind, either expressed or implied.

    Wednesday, October 21, 2015 12:38 AM
  • 1. Transport Agents run InProcess in the EdgeTransport process so if your code is poorly written it can cause the Transport Service to stop or delay delivery of messages. If there is problem loading your assembly at startup it can also cause the Transport Service not to start in the first place. You need to constantly testing your Transport Agent to ensure that new CU's or Service pace don't cause problems.

    2. Transport Agents are just normal .net Dll's so in regards to exception handling there is nothing special and you should follow accepted best practice and make sure all exceptions are caught and don't reference libraries that can bubble back uncaught exceptions, the thing to keep in mind is they run under the same security context as the Transport Service.

    Cheers
    Glen

    • Marked as answer by Tonny_Qitai Wednesday, October 21, 2015 9:45 AM
    Wednesday, October 21, 2015 4:15 AM
  • thanks Glaen Scales, it make sense.
    Wednesday, October 21, 2015 9:47 AM