|
Home > Archive > BizTalk Server > June 2004 > Semi automatic business process pull response no push
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 |
Semi automatic business process pull response no push
|
|
|
| Hi,
I read the earlier question that Bob submitted. We also have the same problem, the business process is as follows:
We send a request to a 3rd party company
Company returns an initial response
We poll their server every 1 minute to retrieve the full response
The reason why we poll their server is their business process is semi automatic. Therefore, they need time to respond and their responce cannot be pushed to us, so we have to pull it from their server. My question therefore is how to implement the above
?, do we create a long running transaction for the polling with a custom adapter and how does this process stay alive (inside the context of that transaction?), or do we create a component outside biztalk that handles the polling and submits the response
back into biztalk which then rehydrated the business process?
--
John
| |
| Gilles [MSFT] 2004-06-11, 12:01 am |
| Hello John,
>I read the earlier question that Bob submitted. We also have the same problem, the business process is as follows:
>
>We send a request to a 3rd party company
>Company returns an initial response
>We poll their server every 1 minute to retrieve the full response
There are multiple solutions. For instance, you could have an orchestration that has:
1) a send shape to submit the request to the thir party company
2) a receive shape to wait for the company to respond (first response)
3) a receive shape (for the full message)
4) configure the receive location for 3) to poll the thir party's server every minute for instance
You will probably need some kind of correlation between the message received in 3) and 4).
As far as polling the thir party's server is concerned, it depends on the transport you are using. If this is FTP, out of the box, BizTalk
offers this ability. If you are using a transport that does not support polling out of the box (HTTP for instance), it is probably easier to
pool yourself:
Write an external component that polls and saves the message to the message box and your orchestration can just
block on a receive shape for the second, full message. The receive shape will block you until the subscription matches
and that will happen only when your adapter sends the message with the right correlation set.
There are indeed other ways to do this.
Hope this helps.
-Gilles.
| |
| Christof 2004-06-20, 11:08 pm |
| Hi John,
you actually may have several solutions to this.
First of all: which protocol are you using for polling please? (I'll assume
for further discussion that you use HTTP or SOAP...)
1) You might use the same orchestration that receives the initial response.
Use a loop shape and a delay shape to implement the polling. The HTTP or
SOAP adapter support solicit response so you may actually initiate the call
there... As soon as you have a valid response, you can end that loop. If
things turn out to last too long, you may break out the loop as well... Use
your imagination.
2) Write you own adapter that polls their server. That adapter should
support solicit response.
I'm a little confused about your sentence on transactions... Long running
transactions actually are "virtual". For example: they do not use the DTC
by any means...
Long running transactions just keep track of context on the things you do
within them. If things fail, you are able to "rollback" (as well:
virtually) by executing compensation code.
Hope this helps,
Kind regards,
Christof
"John" <John@discussions.microsoft.com> wrote in message
news:5A27F1AE-965E-40E3-BEB5-5C711FC43FE0@microsoft.com...
> Hi,
>
> I read the earlier question that Bob submitted. We also have the same
problem, the business process is as follows:
>
> We send a request to a 3rd party company
> Company returns an initial response
> We poll their server every 1 minute to retrieve the full response
>
> The reason why we poll their server is their business process is semi
automatic. Therefore, they need time to respond and their responce cannot
be pushed to us, so we have to pull it from their server. My question
therefore is how to implement the above?, do we create a long running
transaction for the polling with a custom adapter and how does this process
stay alive (inside the context of that transaction?), or do we create a
component outside biztalk that handles the polling and submits the response
back into biztalk which then rehydrated the business process?
>
> --
> John
|
|
|
|
|