Home Page › Forums › BizTalk 2004 – BizTalk 2010 › Receiving Message from MessageBox
- This topic has 6 replies, 1 voice, and was last updated 9 years, 5 months ago by
community-content.
-
AuthorPosts
-
-
August 7, 2006 at 2:11 PM #15222
Hi,
I have two orchestrations.
One receives a message, transforms it and sends it to messagebox thru Direct port binding.Next Orchestration should receive the message from messagebox and do the remaining process.
I came to know that I can have filter condition set at receive shape in second orch,or use correlation.
I need clarification in following issues.
1. Using filter shape – Will it work if I promote certain field in the schema?
2. Since I am using only 2 orchestrations and only once in second orchestration i will subscribe to message box, performance wise which method I should follow – using filtering or correlation.
3. IF I have to use correlation how to go about it…
4. Do I need receive shape in second Orch if I need to use correlation.
5. What should be the value for ‘Activate’ property of Receive shape in filter/correlation methods?Please help me.
Thanx -
August 8, 2006 at 10:25 AM #15223
Thanks for the reply..
Here is what I understood.
I want to promote ceratin field in the schema and use that in the filter condition and use that same field for correlation set.
But I have a question here.
In filter condition I need to mention the value which is not possible since these values come from incoming schema.
One more question I have. If I use correlation, do I need to specify the filter condition in receive shape?
Please give me some detail as I am confused with correlation and filter options.
Thanx in advance
-
August 9, 2006 at 5:46 AM #15224
Thank you for the reply
Let me put my problem in a better way.
As I said earlier there are 2 orchestrations
One takes an input message, transforms it and sends to Message box.
Second one should pick it up from Message box and do the remaining flows.
So I think this is the case where the publishing to Mbox triggers Orch2.According to what I understood from your reply (Please correct me in case if I am wrong)
is, I should have a receive shape which is Active and have to use Filters.
And I cannot use correlation since my receive shape is active.Since I don’t know any values to give specifically at filter condition, Do I have any other method from which I can solve
this publishing to Mbox problem without landing up in subscribing all the messages published.Does BizTalk generate any specific instance Id/type while publishing to Mbox so that I can use it in Orch2
Thanks a lot again
-
August 10, 2006 at 5:54 AM #15225
Thanx Tom,
I’ll go thru the sites you have mentioned and apply the best solution
Thank You
-
August 7, 2006 at 5:02 PM #15226
Here are some answers:
1. Yes, it will work. Notice that however, if you’re trying to manually promote an arbitrary property of the message in the sending orchestration, you might need to initialize a correlation set during the send operation; otherwise the value will only get written to the message context and not promoted.
Notice also that in your case you could also use Partner ports, to make it easier to hook up both orchestrations, instead of using promoted properties.
2, 3, 4, 5. Actually, in the scenario you describe you’d always use an activating receive shape with a filter, since you want to have the message cause a new instance of the orchestration to be spawned to process it.
The only case in which you’d use a correlation is if you want the message to be processed by an orchestration that is already running (started by a completely different message). It does not sound like this is your case.
Here are some good articles to get you started with direct binding:
http://geekswithblogs.net/cyoung/articles/19546.aspx
http://blogs.msdn.com/kevin_lam/archive/2006/04/18/578572.aspx
http://blogs.msdn.com/kevin_lam/archive/2006/04/25/583490.aspx
http://blogs.msdn.com/kevin_lam/archive/2006/06/14/631313.aspx
http://blogs.msdn.com/kevin_lam/archive/2006/07/07/659214.aspx
http://blogs.msdn.com/kevin_lam/archive/2006/07/25/678547.aspx-
August 8, 2006 at 6:18 PM #15227
[quote:c53459c95c=\”Anonymous\”]Thanks for the reply..
Here is what I understood.
I want to promote ceratin field in the schema and use that in the filter condition and use that same field for correlation set.
But I have a question here.
In filter condition I need to mention the value which is not possible since these values come from incoming schema.
One more question I have. If I use correlation, do I need to specify the filter condition in receive shape?
Please give me some detail as I am confused with correlation and filter options.
Thanx in advance[/quote:c53459c95c]
I guess I am not sure what it is you’re asking. As I said in my last reply, you decide which method to use based on a single fact: Do you want the message you’re sending to be picked up by an already running orchestration instance, or to trigger a new orchestration instance?
How it works will all depend on that question.
I will comment on some of your questions though:
You don’t mix filters and correlations. Filter expressions are *onlY* available in activating receive shapes, and you cannot have an activating receive that follows a correlation set. Hence, they are mutually exclusive.If you don’t know the value of the promoted property you want to filter on, it sounds like you should at least be able to filter on the property being there. You can use the Exists() predicate in your filter expression to only pick up messages where the specified property exists in the message context, independent of its value.
-
August 9, 2006 at 12:21 PM #15228
[quote:9edca0c118=\”Anonymous\”]Thank you for the reply
Let me put my problem in a better way.
As I said earlier there are 2 orchestrations
One takes an input message, transforms it and sends to Message box.
Second one should pick it up from Message box and do the remaining flows.
So I think this is the case where the publishing to Mbox triggers Orch2.According to what I understood from your reply (Please correct me in case if I am wrong)
is, I should have a receive shape which is Active and have to use Filters.
And I cannot use correlation since my receive shape is active.[/quote:9edca0c118]
Yes! that’s right.[quote:9edca0c118=\”Anonymous\”]
Since I don’t know any values to give specifically at filter condition, Do I have any other method from which I can solve
this publishing to Mbox problem without landing up in subscribing all the messages published.
[/quote:9edca0c118]You can use a filter with the exists() predicate, which means grab any message where the specified property is promoted, regardless of what value it has.
That said, it sounds like just using partner ports on your orchestrations would work just as well and be less work. Check out
http://blogs.msdn.com/kevin_lam/archive/2006/06/14/631313.aspx
-
-
-
-
-
-
-
AuthorPosts
- The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.