BizTalk Server Orchestration - BizTalk orchestration + listen shape + web service = how? (repost)

This is Interesting: Free IT Magazines  
Home > Archive > BizTalk Server Orchestration > March 2005 > BizTalk orchestration + listen shape + web service = how? (repost)





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 BizTalk orchestration + listen shape + web service = how? (repost)
BArc

2005-03-18, 7:50 am


I have the following scenario I want to achieve for a BTS presentation:

A client wants to get a stock quote back as fast as possible, to do this a
variety of web services will be called and the first to respond is used.

(having newsreader problems)

I have a message assignment shape that assigns a stock quote symbol (ex ORCL
or CSCO) to a group of web services as parameters. I send all the messages
out to the public web services (string based).

I wanted to use a listen shape for the first response from a web service and
complete the orchestration, but :

-I get an error: error X2145: incomplete requestresponse operation;
missing 'receive' --so the receive cant connect with the original send,
assume it needs correlation?

-correlation with public web services (string based)? How can that be
done, I tried a few different parameters, but that doesnt seem to work.



Does anyone have a different angle on how I get the same result (1 message
in response)?





Scott Colestock

2005-03-18, 5:54 pm

This doesn't sound like a correlation issue. Since your web services are
(likely) request-response ports, you need to have an execution path that
does a Receive for each.

This is only a partially formed thought (so bear with me) but to get the
effect you want, you could consider:

1) Using a parallel shape, and having a branch for each web service call -
with a scope shape around the parallel.

2) After each recieve for each web service call, throw an exception of a
specific type that you will know to be benign. This will cause all the
other parallel branches (the slower web service calls) to abort - see
http://www.traceofthought.net/Perma...e5e1ec29b3.aspx

3) Have a catch block that looks for the benign exception and ignores it.

4) Assign the web service response that "won" (completed most quickly) to
the output message.

This design may wind up with "completed with discard messages" entries in
HAT....

Scott Colestock
www.traceofthought.net


"BArc" <biztalk.architect@gmail.com> wrote in message
news:1111137567. 92ec0221e9725a40a913a21b516844cb@teranew
s...
>
> I have the following scenario I want to achieve for a BTS presentation:
>
> A client wants to get a stock quote back as fast as possible, to do this a
> variety of web services will be called and the first to respond is used.
>
> (having newsreader problems)
>
> I have a message assignment shape that assigns a stock quote symbol (ex
> ORCL
> or CSCO) to a group of web services as parameters. I send all the
> messages
> out to the public web services (string based).
>
> I wanted to use a listen shape for the first response from a web service
> and
> complete the orchestration, but :
>
> -I get an error: error X2145: incomplete requestresponse operation;
> missing 'receive' --so the receive cant connect with the original send,
> assume it needs correlation?
>
> -correlation with public web services (string based)? How can that be
> done, I tried a few different parameters, but that doesnt seem to work.
>
>
>
> Does anyone have a different angle on how I get the same result (1 message
> in response)?
>
>
>
>
>



BA

2005-03-20, 5:51 pm

Hello Scott,

I thought I was very close at one point, widdling the orchestration down to
1 error.

Anticlimax.... I thought it was going to compile and it didnt, a new
floodgate opened.

Often a sting of errors like this in BTS point to a single problems, have
you or anyone ever seen this before? (below)

This experiment causes BTS some problems:


error X2223: an atomic scope may not contain, call or compensate a service
or scope that contains both the send and the corresponding receive of a
requestresponse operation on a 'uses' port or servicelink
error X2109: use of unassigned local variable 'WarnVar'
error X2223: an atomic scope may not contain, call or compensate a service
or scope that contains both the send and the corresponding receive of a
requestresponse operation on a 'uses' port or servicelink
error X2110: use of unconstructed message 'xmlFileGamma'
error X2110: use of unconstructed message 'xmlFileSQ'
warning X4004: 'Gamma' is initialized but its value is never used
warning X4004: 'StockQuoteWebS' is initialized but its value is never used


I'll keep plucking away at it, I'm sure the solution is not far off.

Thanks



"Scott Colestock" <scolestock@nospam_usa.net> wrote in message
news:OZCKTz%23KFHA.1620@TK2MSFTNGP14.phx.gbl...
> This doesn't sound like a correlation issue. Since your web services are
> (likely) request-response ports, you need to have an execution path that
> does a Receive for each.
>
> This is only a partially formed thought (so bear with me) but to get the
> effect you want, you could consider:
>
> 1) Using a parallel shape, and having a branch for each web service call -
> with a scope shape around the parallel.
>
> 2) After each recieve for each web service call, throw an exception of a
> specific type that you will know to be benign. This will cause all the
> other parallel branches (the slower web service calls) to abort - see
> http://www.traceofthought.net/Perma...e5e1ec29b3.aspx
>
> 3) Have a catch block that looks for the benign exception and ignores it.
>
> 4) Assign the web service response that "won" (completed most quickly) to
> the output message.
>
> This design may wind up with "completed with discard messages" entries in
> HAT....
>
> Scott Colestock
> www.traceofthought.net
>
>
> "BArc" <biztalk.architect@gmail.com> wrote in message
> news:1111137567. 92ec0221e9725a40a913a21b516844cb@teranew
s...
>
>



Susmitha Kothari

2005-03-24, 5:50 pm

Are you trying to execute a web service in an atomic transaction? This is
not possible.

Regards,
Susmitha Kothari
Microsoft BizTalk Server

This posting is provided "AS IS" with no warranties, and confers no rights.

Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com