none
Orchestration Receive Port RRS feed

  • Question

  • In the orchestration receive port, what is the difference between
    a) setting the receive port binding to direct and partner orchestration port as 'Message Box'
    b) setting the receive port binding to specify later and assigning the inbound logical port of orchestration with the receive port created.

    what is the difference between two and which one is preferable? In case of batching in the orchestration, if the receive port is set to message box, it might lead to zombie issue, does it not preferable to set the receive port to specify later initially
    and then create a receive port after deployment.
    please clarify the preferable method in the batching orchestration

    Thursday, June 5, 2014 2:28 PM

Answers

  • Well, there is no 'preferable' setting since it depends entirly in you app's design and the scenarios you have to implement.  Zombies can happen with either one so that's not really a factor either.

    The difference is that a Specify Later Port must be bound in BizTalk Administrator to a Physical Send or Receive Port.  When you do this, a Subscription predicate is added for that specific Port.  This create a 1-to-1 relationship between the Orchestration Port and the Physical Port.

    If this is related to your thread "how to batch two xml files from two different receive locations" then what you want is a Parallel Convoy.

    Thursday, June 5, 2014 2:48 PM
    Moderator

All replies

  • Hi Ragavalli,

    You can find difference here

    Option a is preferable when you are planning to go for a bit loose coupling whereas option b is tightly coupled.

    It's true that zombie issue might arise but only if no subscriber found(subscriber instance have completed), also it happens that publisher is picking same messages , so this is to be considered while development. 


    Maheshkumar S Tiwari|User Page|Blog|BizTalk Server : How Map Works on Port Level


    Thursday, June 5, 2014 2:42 PM
  • Well, there is no 'preferable' setting since it depends entirly in you app's design and the scenarios you have to implement.  Zombies can happen with either one so that's not really a factor either.

    The difference is that a Specify Later Port must be bound in BizTalk Administrator to a Physical Send or Receive Port.  When you do this, a Subscription predicate is added for that specific Port.  This create a 1-to-1 relationship between the Orchestration Port and the Physical Port.

    If this is related to your thread "how to batch two xml files from two different receive locations" then what you want is a Parallel Convoy.

    Thursday, June 5, 2014 2:48 PM
    Moderator
  • Zombie issue does not occur if "No subscribers found"?? It will just cause one (two actually; a resumable and non-resumable instance) suspended instance, that is not the same as a Zombie, which is related to Correlations and timeouts.

    Anyway be aware that specifying a direct Receive Port in an Orchestration can create an infinitive loop if you don't have a Filter on your Receive Shape and sends the message back into the messagebox.

    Morten la Cour

    Thursday, June 5, 2014 5:02 PM
  • The basic difference would be visible in Instance subscription criteria. When you use "Specify Later" then you tell BizTalk that Binding for the logical receive port will be applied after deployment and when you bind a physical port and enlist the orch then subscriptions are created with ReceivePortID.

    But in case of MessageBox binding, the subscriptions will be created as soon as you deploy the Orch and Receive port will not be part of it i.e. your orch can receive message from any receive port which matches it's subscription criteria.

    So, in short you can see loose coupling and flexibility in case of MessageBox binding and this decision is purely how you want to design your application.

    Also, Zombie is not related to above mentioned concept but it's separate part itself. 


    Regards, Ajeet Kumar MCTS Biztalk Server

    Tuesday, June 10, 2014 1:17 PM