Home Page › Forums › BizTalk 2004 – BizTalk 2010 › Can one message be broadcasted to multiple orch instances?
- This topic has 3 replies, 1 voice, and was last updated 9 years, 3 months ago by
community-content.
-
AuthorPosts
-
-
February 14, 2006 at 9:49 PM #14366
I know difference orchestrations can subscribe to a type of message.
But what I’m trying to do is to have a orchestration instantiated by a instance of the business message and then listened to a special \”signal message\”. So if I have 3 business messages send in, there will be three orchestration instances listen to the signal messages.
So far I have to send in three signal messages to complete the three instances of the orchestration.
Can I send in only one signal message and have three instances of the orchestration all get its own copy?
-
February 15, 2006 at 6:14 PM #14367
Thanks for replying.
I did almost same thing. I use a property called \”Stage\” instead of \”process\” thought.
I apologize I did make myself very clear in my design intention:
In order to take the advantage of parallel processing ability BizTalk provided, I use a correlation set on message’s WorkID (a GUID). Therefore, each message instance (with a unique WorkID) will instantiate a new correlation – as well as an instance of the the Orchestration hosting that correlation set.
This design create a constrain for me that the signal message has to carry a matching GUID for each instance of the the Orchestration/correlation. That makes the signal message unique from each other as well. That’s why I can’t broadcast it.
I probabily should ask you a question \”Do you think there is another way to realize this kind of parallel processing\” instead of my original question.
-
February 15, 2006 at 2:29 PM #14368
You can do that by setting up your Receive Shape / Receive Port inside the Orchestration as Direct Binding to the Message Box. That’s really what’s going on under the covers anyways
You can then subscribe to anything you want using a filer inside the Orchestration. You can subscribe to something like MessageType.
Now, use caution. It’s very easy to get into an endless loop since when your Orchestrations Sends a message out it can also get picked back up again by the receive (if the properties match).
I’ll sometimes create a custom property that I set inside a custom pipeline called Process. I’ll set it to false in the pipeline and true once I hit the Orchestration. Might be something else that Biztalk gives you that you can use like ReceivePortId Exists or something like that. In any case, if you see cpu hit 100% you know your in a loop.
Best of luck.
-
February 22, 2006 at 3:50 PM #14369
Sorry, I got a little lost. Are you using a Convoy?
As far as parallel processing, direct binding is the easiest way to do it.
You can always create a single Orchestration that then starts as many other Orchestrations as that message needs. So you only have one subscription and then can start many Orchestrations (I have a sample related to this that I’ll post soon). You lose some flexibility and performance will be impacted. Does that make sense?
-
-
-
-
AuthorPosts
- The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.