BizTalk Server Orchestration - Correlation question

This is Interesting: Free IT Magazines  
Home > Archive > BizTalk Server Orchestration > February 2005 > Correlation question





You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

Author Correlation question
Wesley

2005-02-15, 7:54 am

Hi,

I have an orchestration which receives an input file
that includes the document ids of the data files it
should send forward. I use correlation set to receive the
data files based on the document ids. But the problem is,
that the data files may exist in the receive directory
before the input file is received. In that case the
active receive port reads the data files, and I get the
error: Could not find a matching subscription for the
message. And the correlation doesn't work then, of course.
Can anyone help me with this problem ?

Regards, Wesley
Jon Flanders[DevelopMentor]

2005-02-15, 7:54 am

Does the input file come in through the same receive location?

--
Jon Flanders [DevelopMentor]
http://staff.develop.com/jfland/
http://www.develop.com/courses/biztalk
"Wesley" <anonymous@discussions.microsoft.com> wrote in message
news:29af01c51360$17659a90$a401280a@phx.gbl...
> Hi,
>
> I have an orchestration which receives an input file
> that includes the document ids of the data files it
> should send forward. I use correlation set to receive the
> data files based on the document ids. But the problem is,
> that the data files may exist in the receive directory
> before the input file is received. In that case the
> active receive port reads the data files, and I get the
> error: Could not find a matching subscription for the
> message. And the correlation doesn't work then, of course.
> Can anyone help me with this problem ?
>
> Regards, Wesley



Wesley

2005-02-15, 7:54 am

It is possible to configure whether to use the same or
different receive location.
Jon Flanders[DevelopMentor]

2005-02-15, 5:50 pm

I was thinking of a solution (never tried it) - where you'd have an
orchestration that would receive your "command message" and then using an
expression shape enable a receive location for the other documents. Of
course this would only work if each "command message" was serial, if you
received more than one "command message" you'd have to have multiple receive
locations (one for each id or whatever you were correlating on).

--
Jon Flanders [DevelopMentor]
http://staff.develop.com/jfland/
http://www.develop.com/courses/biztalk
"Wesley" <anonymous@discussions.microsoft.com> wrote in message
news:29f501c51366$79508840$a401280a@phx.gbl...
> It is possible to configure whether to use the same or
> different receive location.



Nabeel Prior

2005-02-15, 5:50 pm

Does the orchestration receive the initial document with many data file
document ids and it is then to receive and send many data document ids for
the 1 initial document?

OR

Does one orchestration send one data document? If not currently setup this
way, is there any reason why it could not be done this way. In other words,
have the initial document start up multiple different orchestrations, one
per document id in the initial document? If you can do this then you can
use parallel convoys to receive either the data file or the document id
first, assuming that both have the document id in them.

--

Kind Regards,

Nabeel Prior
Web: http://www.brainjar.co.za
Blog: http://www.brainjar.co.za/blog.aspx


"Wesley" <anonymous@discussions.microsoft.com> wrote in message
news:29f501c51366$79508840$a401280a@phx.gbl...
> It is possible to configure whether to use the same or
> different receive location.



Jon Flanders[DevelopMentor]

2005-02-15, 5:50 pm

Of course you may be able to use the parrellel shape as well. Actually come
to think of it that probably is your answer right there.

--
Jon Flanders [DevelopMentor]
http://staff.develop.com/jfland/
http://www.develop.com/courses/biztalk
"Jon Flanders[DevelopMentor]" <jfland@develop.com> wrote in message
news:ehEClt2EFHA.3924@TK2MSFTNGP09.phx.gbl...
>I was thinking of a solution (never tried it) - where you'd have an
>orchestration that would receive your "command message" and then using an
>expression shape enable a receive location for the other documents. Of
>course this would only work if each "command message" was serial, if you
>received more than one "command message" you'd have to have multiple
>receive locations (one for each id or whatever you were correlating on).
>
> --
> Jon Flanders [DevelopMentor]
> http://staff.develop.com/jfland/
> http://www.develop.com/courses/biztalk
> "Wesley" <anonymous@discussions.microsoft.com> wrote in message
> news:29f501c51366$79508840$a401280a@phx.gbl...
>
>



Wesley

2005-02-15, 5:50 pm


There's 6 different documentation types.
When the input file is received,
there may be 1-6 documents in the receive location
and I should also send 1-6 documents in my orchestration.
What do you think, is it possible to use parallel convoys
in this case ?
Regards, Wesley

Wesley

2005-02-15, 5:50 pm

There's 6 different documentation types.
When the input file is received,
there may be 1-6 documents in the receive location
and I should also send 1-6 documents in my orchestration.
What do you think, is it possible to use parallel convoys
in this case ?
Regards, Wesley

Stephen W. Thomas

2005-02-15, 5:50 pm

Hello.

Let me make sure I have this right, you receive a start document called
Message A that says what different id’s you want to batch together, something
like you want id 1, 2, 3, 4, 5, 6 to all be sent together as Batch A. In
addition, you can receive any of your single messages prior to receiving the
start document.

If this is the case, I do not think you can use parallel convoys. You have
nothing to Correlate on.. i.e. nothing links the 6 messages together other
then the received id’s in the first message and these values are different
for each of the 6 messages. Now, if the ids were all the same, you would me
able to use a parallel convoy.

Receiving single message before the start message will definitely be a
problem. I think you will need some type of temp storage area for them.

Do you have any way to link the 6 documents together without the start
message?

I am thinking you might want to build a master Orchestration to process all
inbound messages – both single message and the start message. Then, when you
get a start message start a new Orchestration that uses a Convoy to take in 6
messages with a custom Batch ID. Then, you can use a SQL table to store this
Batch ID and the corresponding ids of the messages inside that batch. As
each of the single messages are received, you can check to see if the message
id exists in the table. If so, send it to the Orchestration by appending the
new Batch ID to the message context. If not, send the message to a queue.
As each new start message is receive, you will have to spin through all the
messages in the queue to see if they match any of the message ids in the SQL
table. Just a thought… I do not really know if this would work. I did
something similar in the past…

Hope this helps.

Stephen W. Thomas
http://www.geekswithblogs.net/sthomas


"Wesley" wrote:

>
> There's 6 different documentation types.
> When the input file is received,
> there may be 1-6 documents in the receive location
> and I should also send 1-6 documents in my orchestration.
> What do you think, is it possible to use parallel convoys
> in this case ?
> Regards, Wesley
>
>

Wesley

2005-02-16, 5:50 pm

Thanks. I have to think about your suggestion.
The start message is the only way to link the data
documents together.
I wrote earlier that there is may be 1-6 documents in the
receive location. It means that there is min. 1 document
and max. 6 documents. If the start document includes only
one file name, only one document is needed. So I think it
is difficult to use parallel convoy.

I think I need a some kind of dynamic receive port, that
can be configured ( in the orchestration ) to receive a
file named 'xyz'. Unfortunately this is not possible, or
is it ?

Regards, Wesley
Nabeel Prior

2005-02-16, 5:50 pm

What links the starting file to the other 1-6 files uniquely that ensures
that the next starting file does not point to one of the previous 1-6 files?

Could you perhaps post a sample of your starting file and 1 or 2 of your
"data" files?

--

Kind Regards,

Nabeel Prior
Web: http://www.brainjar.co.za
Blog: http://www.brainjar.co.za/blog.aspx


"Wesley" <anonymous@discussions.microsoft.com> wrote in message
news:212e01c51433$0dfbcaa0$a501280a@phx.gbl...
> Thanks. I have to think about your suggestion.
> The start message is the only way to link the data
> documents together.
> I wrote earlier that there is may be 1-6 documents in the
> receive location. It means that there is min. 1 document
> and max. 6 documents. If the start document includes only
> one file name, only one document is needed. So I think it
> is difficult to use parallel convoy.
>
> I think I need a some kind of dynamic receive port, that
> can be configured ( in the orchestration ) to receive a
> file named 'xyz'. Unfortunately this is not possible, or
> is it ?
>
> Regards, Wesley



Stephen W. Thomas

2005-02-16, 8:47 pm

Hello.

In that case, you could still do something like I mentioned just use a
looping sequential convoy to take in 1 to 6 messages.

I do not think you can do the programmatic receives… I’m sure it can be done
but with documents arriving ahead of time this would not really help you out
much.

If you wanted to send me some sample files I could try to prototype my idea.
You can send them to swthomas@NOSPAMbiztalkgurus.com - just remove the
NOSPAM part. What kind of volume will you be processing per hour or day?

Stephen W. Thomas
http://www.geekswithblogs.net/sthomas


"Wesley" wrote:

> Thanks. I have to think about your suggestion.
> The start message is the only way to link the data
> documents together.
> I wrote earlier that there is may be 1-6 documents in the
> receive location. It means that there is min. 1 document
> and max. 6 documents. If the start document includes only
> one file name, only one document is needed. So I think it
> is difficult to use parallel convoy.
>
> I think I need a some kind of dynamic receive port, that
> can be configured ( in the orchestration ) to receive a
> file named 'xyz'. Unfortunately this is not possible, or
> is it ?
>
> Regards, Wesley
>

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com