none
Ordered Delivery- Biztalk 2010 RRS feed

  • Question

  • Does enabling ordered delivery on a send port (Biztalk2010) effect the performance of the host in which it is executing. If an host instance is hosting multiple send port and if only one of them is ordered delivery , is there a performance impact on the send port which is not ordered delivery?.

    Should we always have dedicated host for hosting ordered delivery send ports?

    • Edited by PraveenKumarMP Friday, September 19, 2014 8:02 AM Performance of host
    Friday, September 19, 2014 7:25 AM

Answers

  • The answer is yes, but probably not for any reason you're thinking about.

    Ordered Delivery does not cause a Host Instance to do any work that it would not normally do anyway, meaning, there is no extra work specific to enabling Ordered Delivery.

    However, Ordered Delivery may cause more work to be done within the Host Instance because it may force Adapters to repeat connection type activities per message rather than per batch.  Depending on the scenario, this could be a relatively expensive operation.

    Ordered Delivery will almost certainly cause a perceived performance problem because it is a switch from Parallel Send to Sequential Send which will always appear slower.

    Yes, there was a notable change from BizTalk Server 2010 to BizTalk Server 2013.  If you measured carefully enough, BizTalk Server 2010 and earlier might appear bursty as the Messaging Agent encountered non-Ordered, then Ordered Send Ports.  However, this is almost always significantly outweighed by an actual business requirement or administrative practicalities (not creating lots of extra Hosts).

    Keep in mind, there's only a 'performance problem' if you can measure it against an agreed SLA.  Don't worry about theoretical performance issues.

    • Proposed as answer by Vignesh Sukumar Saturday, September 20, 2014 5:02 PM
    • Marked as answer by PraveenKumarMP Monday, September 22, 2014 7:15 AM
    • Unmarked as answer by PraveenKumarMP Monday, September 22, 2014 7:16 AM
    • Marked as answer by PraveenKumarMP Tuesday, September 23, 2014 12:14 AM
    Friday, September 19, 2014 11:53 AM
    Moderator

All replies

  • Hi,

    Yes using Ordered delivery reduces the performance of your biztalk solution as Ordered delivery is singleton pattern. Visit below link on ordered delivery by Leonid Ganeline it also includes improved performance for Ordered delivery.

    http://social.technet.microsoft.com/wiki/contents/articles/6681.biztalk-server-ordered-delivery.aspx

    _________________________________________

    Please indicate "Mark as Answer" or "Mark as Helpful" if this post has answered the question

    Regards,

    Rahul Madaan

    biztalkvillage.blogspot.com

    Friday, September 19, 2014 7:33 AM
  • Hi Praveen,

    Ordered delivery is a fairly powerful concept. It greatly impacts performance because the send port won’t send subsequent messages until a delivery confirmation is received, but, in many cases that performance impact is outweighed by business requirements.

    Yes, as you have stated. The workaround is to place these send ports into different hosts. But its feasible only if the number of ordered send ports are small.

    However, In the 2013 version of BizTalk Server, instead of relying only on the Host Queue, and blocking all messages that follow an ordered message, each Send Port with ordered delivery enabled is dedicated its own thread within the Host Instance, and messages sent to those locations will not block any other Send Ports that also have messages ready and waiting. If you have (say) 500 ordered send ports in a single host, then you'll need to increase the Messaging Engine Threads setting so that it can spin up the necessary number of threads for you.

    Hope this clarifies.

    Regards,

    Rachit

    When you see answers and helpful posts,
    please click Vote As Helpful, Propose As Answer, and/or Mark As Answer



    Friday, September 19, 2014 7:39 AM
    Moderator
  • The answer is yes, but probably not for any reason you're thinking about.

    Ordered Delivery does not cause a Host Instance to do any work that it would not normally do anyway, meaning, there is no extra work specific to enabling Ordered Delivery.

    However, Ordered Delivery may cause more work to be done within the Host Instance because it may force Adapters to repeat connection type activities per message rather than per batch.  Depending on the scenario, this could be a relatively expensive operation.

    Ordered Delivery will almost certainly cause a perceived performance problem because it is a switch from Parallel Send to Sequential Send which will always appear slower.

    Yes, there was a notable change from BizTalk Server 2010 to BizTalk Server 2013.  If you measured carefully enough, BizTalk Server 2010 and earlier might appear bursty as the Messaging Agent encountered non-Ordered, then Ordered Send Ports.  However, this is almost always significantly outweighed by an actual business requirement or administrative practicalities (not creating lots of extra Hosts).

    Keep in mind, there's only a 'performance problem' if you can measure it against an agreed SLA.  Don't worry about theoretical performance issues.

    • Proposed as answer by Vignesh Sukumar Saturday, September 20, 2014 5:02 PM
    • Marked as answer by PraveenKumarMP Monday, September 22, 2014 7:15 AM
    • Unmarked as answer by PraveenKumarMP Monday, September 22, 2014 7:16 AM
    • Marked as answer by PraveenKumarMP Tuesday, September 23, 2014 12:14 AM
    Friday, September 19, 2014 11:53 AM
    Moderator
  • my 5 c:

    in many cases Ordered Delivery on SP makes process faster and less error prone.

    For example: we are sending a burst of 1000 messages almost simultaneously. The target system, where those messages sent, is overloaded and 900 messages are time outed. SP retries those 900 messages, then 800, ... then suspend messages (with retry counter exhausted).  As a result BTS is overloaded, the target system is overloaded and both are slow down significantly.

    I saw this many times especially when the target system is a web-service, because here is also the session pool, which could be easily exhausted.


    Leonid Ganeline [BizTalk MVP] <a href="http://social.technet.microsoft.com/wiki/contents/articles/20258.biztalk-integration-development-architecture.aspx">BizTalk Development Architecture</a>

    Friday, September 19, 2014 5:37 PM
    Moderator
  • Praveen,

    It will affect the performance because ports configured to run on multiple host instances run only on a single host instance to ensure ordered delivery. May be to improve the performance you can have the retry interval to lowest value.

    Ref: http://msdn.microsoft.com/en-us/library/aa559637.aspx 

    Thanks,

    CB

    Sunday, September 21, 2014 5:18 AM
  • Thanks.

    There has been no evidence in our current environment an ordered delivery send port has impacted the performance of non ordered delivery port even though they are in the same host. We have a solution where in message published is routed to 2 end systems 1 using ordered delivery send port and other one non ordered delivery (both are in same host), also this interface handles huge load.

    Tuesday, September 23, 2014 12:24 AM
  • Rachit,

                 Thanks. 

               

    Tuesday, September 23, 2014 12:25 AM
  • Leonid,

               That very true, when the target system is web service which cannot handle sudden burst of messages, ordered delivery mechanism guarantees the delivery of messages even though there is latency.

    Thanks

    Praveen

    Tuesday, September 23, 2014 12:27 AM
  • Thanks
    Tuesday, September 23, 2014 12:28 AM