BizTalk Server General - Terminating an orchestration from a send pipeline

This is Interesting: Free IT Magazines  
Home > Archive > BizTalk Server General > September 2004 > Terminating an orchestration from a send pipeline





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 Terminating an orchestration from a send pipeline
The Gremlin

2004-09-27, 5:52 pm

Hello.

We have an orchestration that is connected to a send pipeline. This send
pipeline ends in an FTP send, and contains several custom components, some of
which might decide to abort the process. When a pipeline component decides to
stop the process, it just returns null, which effectively terminates the
pipeline. The problem is that the orchestration still remains active and
actually retries the send after a period of time. How can we prevent this
from happening?

Thanks
The Gremlin
Gilles [MSFT]

2004-09-27, 5:52 pm

Hello,

>We have an orchestration that is connected to a send pipeline. This send
>pipeline ends in an FTP send, and contains several custom components, some of
>which might decide to abort the process. When a pipeline component decides to
>stop the process, it just returns null, which effectively terminates the
>pipeline. The problem is that the orchestration still remains active and
>actually retries the send after a period of time. How can we prevent this
>from happening?


There are only two ways an orchestration can terminate: reaching an end or being forcefully terminated.
Since you do not want to force orchestartions to exit, this leaves only one option: have the orchestration
detect that situation and terminate when the processing was aborted.

A few possible solutions among many others:

Your orchestartion could listen to a port for an "interrupt" message. When you abort the process, you would
send a message to this port. One way of doing this would be to have your pipeline component send a message
back to your orchestration in case of an abort.

Another way (maybe not possible in your case) is to write a small .NET object that would screen the message and see
if it must be sent or not. Call this from your orchestration in an expression shape and send only when you know the msg
will have to be sent.

Another possibility is to have the send port send the transformed message back to your orchestration (i.e. loopback send).
Your component can promote a property called "mustSend" or whatever. Your orchestartion send the message to the pipeline
and waits for a loopback message to arrive. It then checks the promoted property setup by the pipeline and decides if it needs to
send or not.

Thanks,
-Gilles.

Devdutt Patnaik

2004-09-28, 5:52 pm

You could implement the ACK/NACK sample in your scenario, so that you get
delivery notifications and can terminate or not terminate accordingly.

"The Gremlin" <imagremlin@hotmail.com> wrote in message
news:DF99F3EE-B31D-4DB2-AA4F-F1CEC45F4DBF@microsoft.com...
> Hello.
>
> We have an orchestration that is connected to a send pipeline. This send
> pipeline ends in an FTP send, and contains several custom components, some

of
> which might decide to abort the process. When a pipeline component decides

to
> stop the process, it just returns null, which effectively terminates the
> pipeline. The problem is that the orchestration still remains active and
> actually retries the send after a period of time. How can we prevent this
> from happening?
>
> Thanks
> The Gremlin



Sponsored Links






Free braindumps | Software forum | Database administration forum

Copyright 2003 - 2008 webservertalk.com