none
Sharing a send port between multiple applications. RRS feed

  • Question

  • Hi

    I know that, for a single application, I can use the "Transport Advanced Options" - "Ordered Delivery" to ensure that only one message at a time is sent to the "Send Port". That is good, very good.

    However, I have several applications, each with an identical "Send Port" and I'm trying to ensure that only one message at a time is sent across all applications.

    So can I set up one "send port" with "Ordered Delivery" and have all my applications use exactly the same send port?

    Thanks

    Monday, November 23, 2015 5:28 PM

Answers

  • Yes you can.

    1. Create a "Common" BizTalk application and put the common send port in that application.
    2. On the other applications that will use that port, add a reference to the "Common" BizTalk application.

    Voila! Your port will be available on all other apps.

    PS: Please note the scalability and availability impacts of this design as mentioned by Abhishek.


    • Edited by Mauricio Feijo Monday, November 23, 2015 9:15 PM
    • Proposed as answer by Mauricio Feijo Tuesday, November 24, 2015 2:55 AM
    • Marked as answer by TreforE Monday, November 30, 2015 11:24 AM
    Monday, November 23, 2015 9:13 PM

All replies

  • Hi Trefor,

    Yes ,its possible but Can you please explain your requirement a bit more ? Why you want to set Ordered Delivery for each application .

    It has its own performance impact, To achieve ordered delivery, BizTalk Server must serialize processing of ordered messages at various points along the message pathway. This works against scale-out techniques, such as the use of multiple host instances for parallel processing of messages. And thats the reason whole processing of messages will be slowed up.

    To understand Ordered Delivery were it is best suited I would suggest to go through MSDN Link

     https://msdn.microsoft.com/en-in/library/aa559637.aspx

    Ordered message delivery ensures that messages that are published to the MessageBox database in a given order are delivered to each matching subscriber in the same order in which they were published to the message box.

    Thanks

    Abhishek


    If this answers your question please mark it accordingly. If this post is helpful, please vote as helpful by clicking the upward arrow mark next to my reply


    Monday, November 23, 2015 6:48 PM
  • Yes, that is no problem.

    You might want to move the shared Send Port to it's own Application since it will have to be Referenced in BizTalk Administrator to be visible on the Binding picker.

    Monday, November 23, 2015 7:29 PM
    Moderator
  • Yes you can.

    1. Create a "Common" BizTalk application and put the common send port in that application.
    2. On the other applications that will use that port, add a reference to the "Common" BizTalk application.

    Voila! Your port will be available on all other apps.

    PS: Please note the scalability and availability impacts of this design as mentioned by Abhishek.


    • Edited by Mauricio Feijo Monday, November 23, 2015 9:15 PM
    • Proposed as answer by Mauricio Feijo Tuesday, November 24, 2015 2:55 AM
    • Marked as answer by TreforE Monday, November 30, 2015 11:24 AM
    Monday, November 23, 2015 9:13 PM
  • The send port is an wcf-sql compositeOperation which uses a Stored Procedure. Having multiple applications using the same table "in parallel" is causing locking problems - so I see serialization of a common send port as a solution.
    Tuesday, November 24, 2015 1:09 PM
  • Excellent - That worked a treat.. Thanks very much.

    Trefor

    Monday, November 30, 2015 11:25 AM