|
Home > Archive > BizTalk Server Orchestration > May 2005 > Convoy and no discarded messages...
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 |
Convoy and no discarded messages...
|
|
|
| Hi,
I'm having trouble implementing a convoy without getting discarded messages
and am hoping someone can help.
I have a message, with unique id of "x". Messages with id "x" can come
multiple times (they are just updates to the same message). However, I have
to send "x" to a vendor and wait for a reply before I can send the other "x"
that showed up. Basically, I receive "x", send "x", while waiting to get a
response (long running) for "x", I receive another "x". This can't be sent
until response is received. "x" is an example of a uniqueid in the message.
I can have "x", "y", "z", etc... each of which would have their own
orchestration instances.
I am correlating on x. This works fine until I drop additional instances of
"x" into the receive location prior to it finishing all the steps. Then, I
get the "discarded messages" error and the second (subsequent) message is
lost.
If I don't do a convoy with two receives, then I get multiple instances of
the orchestration which I don't want. Am I missing something simple? Do I
have the wrong design pattern?
Please advise...
Michael
| |
| Scott Colestock 2005-05-14, 1:15 pm |
| Do you have some sort of a loop that you are using while receiving
correlated messages? (that you exit when the "last" update has been signaled
in some way?)
What does the control flow look like?
Scott Colestock
www.traceofthought.net
"Mike" <Mike@discussions.microsoft.com> wrote in message
news:A4F5E7FA-4EED-4EBE-AAF0-9ED15DE93E8B@microsoft.com...
> Hi,
>
> I'm having trouble implementing a convoy without getting discarded
> messages
> and am hoping someone can help.
>
> I have a message, with unique id of "x". Messages with id "x" can come
> multiple times (they are just updates to the same message). However, I
> have
> to send "x" to a vendor and wait for a reply before I can send the other
> "x"
> that showed up. Basically, I receive "x", send "x", while waiting to get
> a
> response (long running) for "x", I receive another "x". This can't be
> sent
> until response is received. "x" is an example of a uniqueid in the
> message.
> I can have "x", "y", "z", etc... each of which would have their own
> orchestration instances.
>
> I am correlating on x. This works fine until I drop additional instances
> of
> "x" into the receive location prior to it finishing all the steps. Then,
> I
> get the "discarded messages" error and the second (subsequent) message is
> lost.
>
> If I don't do a convoy with two receives, then I get multiple instances of
> the orchestration which I don't want. Am I missing something simple? Do
> I
> have the wrong design pattern?
>
> Please advise...
>
> Michael
>
| |
|
| Scott,
It's an ongoing update cycle. The rule is that we can't submit an update to
an item without having first received a response for the last submitted
update, which usually will be very quick, but could take some time if
problems are encountered.
Even if I had a loop, I think I would still have an issue. The loop could
be used to batch up my updates for that single work item (as it has many
children that can be updated), but eventually I have to send and wait for a
response. I need to figure out what to do with any updates that may occur to
that item before I receive the response.
One thing I thought about doing was running some sort of service window, but
this would only work if I received a positive response during send/receive
response service window, which can't be promised.
It would be really nice if I could just have the orchestration process the
item and upon completion, run the other item(s) that are backed up. I have
read about "zombie" messages and am aware that this is what is happening to
me. I simply don't know how to solve my issue and was hoping someone else
had a similar problem where they came up with a workaround. Is my problem
really that unique?
Many thanks for any suggestions that you can come up with!!!
Michael
"Scott Colestock" wrote:
> Do you have some sort of a loop that you are using while receiving
> correlated messages? (that you exit when the "last" update has been signaled
> in some way?)
> What does the control flow look like?
>
> Scott Colestock
> www.traceofthought.net
>
> "Mike" <Mike@discussions.microsoft.com> wrote in message
> news:A4F5E7FA-4EED-4EBE-AAF0-9ED15DE93E8B@microsoft.com...
>
>
>
| |
| ckphua 2005-05-16, 5:50 pm |
| Mike,
Is there a sequence number in your message? If there is, you can promote it
and use that as part of your correlating set in the convoy.
Cheers,
ck.
Phua Chiu Kiang
www.pckconsulting.com
"Mike" wrote:
[vbcol=seagreen]
> Scott,
>
> It's an ongoing update cycle. The rule is that we can't submit an update to
> an item without having first received a response for the last submitted
> update, which usually will be very quick, but could take some time if
> problems are encountered.
>
> Even if I had a loop, I think I would still have an issue. The loop could
> be used to batch up my updates for that single work item (as it has many
> children that can be updated), but eventually I have to send and wait for a
> response. I need to figure out what to do with any updates that may occur to
> that item before I receive the response.
>
> One thing I thought about doing was running some sort of service window, but
> this would only work if I received a positive response during send/receive
> response service window, which can't be promised.
>
> It would be really nice if I could just have the orchestration process the
> item and upon completion, run the other item(s) that are backed up. I have
> read about "zombie" messages and am aware that this is what is happening to
> me. I simply don't know how to solve my issue and was hoping someone else
> had a similar problem where they came up with a workaround. Is my problem
> really that unique?
>
> Many thanks for any suggestions that you can come up with!!!
>
> Michael
>
>
> "Scott Colestock" wrote:
>
| |
|
| ck,
No, there is not a sequence number, but I could have one added. However, I
still don't know how this would solve my problem. Remember, for a UNIQUEID
(for example, a CustomerId), I can only have ONE update out the door at a
time. I was correlating on that uniqueId. A sequence number to the corr set
would just mean I have more orchestrations running and I can't guarantee that
I don't send a subsequent update for that uniqueid until the last item has
been responded to.
Does that make sense?
Michael
"ckphua" wrote:
[vbcol=seagreen]
> Mike,
>
> Is there a sequence number in your message? If there is, you can promote it
> and use that as part of your correlating set in the convoy.
>
> Cheers,
> ck.
> Phua Chiu Kiang
> www.pckconsulting.com
>
> "Mike" wrote:
>
| |
| Stephen W. Thomas 2005-05-17, 5:50 pm |
| Hello.
Sounds like something is off inside your Orchestration, unless the messages
are really getting processed.
I have seen messages get processed but marked as Discarded – sometimes it
fails the Orchestration and sometimes it does not. Are you sure they are not
getting processed?
MS released two KB articles about a month ago along with two hot fixes for
problems related to this (maybe). The KB numbers are: 892405 and 892138. I
was searching under “completed with discarded messages”
If you want to send me your project I could take a look at it for you. You
can send it to swthomas@NOSPAMbiztalkgurus.com. Just remove the nospam part.
Hope this helps.
Stephen W. Thomas
http://www.geekswithblogs.net/sthomas
"Mike" wrote:
[vbcol=seagreen]
> ck,
>
> No, there is not a sequence number, but I could have one added. However, I
> still don't know how this would solve my problem. Remember, for a UNIQUEID
> (for example, a CustomerId), I can only have ONE update out the door at a
> time. I was correlating on that uniqueId. A sequence number to the corr set
> would just mean I have more orchestrations running and I can't guarantee that
> I don't send a subsequent update for that uniqueid until the last item has
> been responded to.
>
> Does that make sense?
>
> Michael
>
>
> "ckphua" wrote:
>
| |
|
| For the benefit of anyone else trying to do the same thing: I was able to
accomplish the requirement by using a combination of orchestrations. I had a
parent orchestration that was based on a sequential convoy. I had this
parent orchestration call a child orchestration that also had a correlation
set. The "Call Orchestration" shape was used. The child orchestration
simply sent the message and had a receive while waiting for the response.
Once the response is received, the parent orchestration continues. If you
need further details then feel free to contact me.
"Stephen W. Thomas" wrote:
[vbcol=seagreen]
> Hello.
>
> Sounds like something is off inside your Orchestration, unless the messages
> are really getting processed.
>
> I have seen messages get processed but marked as Discarded – sometimes it
> fails the Orchestration and sometimes it does not. Are you sure they are not
> getting processed?
>
> MS released two KB articles about a month ago along with two hot fixes for
> problems related to this (maybe). The KB numbers are: 892405 and 892138. I
> was searching under “completed with discarded messages”
>
> If you want to send me your project I could take a look at it for you. You
> can send it to swthomas@NOSPAMbiztalkgurus.com. Just remove the nospam part.
>
>
> Hope this helps.
>
> Stephen W. Thomas
> http://www.geekswithblogs.net/sthomas
>
>
> "Mike" wrote:
>
|
|
|
|
|