BizTalk Gurus

a listen with an activatable receive cannot have a timeout

rated by 0 users
This post has 7 Replies | 0 Followers

Posted: Wed, May 10 2006 11:16 PM
i get the following error while compiling....

* a listen with an activatable receive cannot have a timeout.

This occurs when i set receive activate property to true.

Any help appreciated.

Back to top


Stephen W. Thomas
Site Admin


Joined: 29 Aug 2005
Posts: 387
Location: Allen, TX
Posted: Wed May 10, 2006 8:41 am Post subject: Re: a listen with an activatable receive cannot have a timeo

--------------------------------------------------------------------------------

You can only have one activate receive shape and it would be at the top of your Orchestration.

If you are using a listen shape you will need to do some type of correlation to get the message into that Orchestration.

Hope this helps.

Back to top

-------------------------------------------------------------------------------

i have initialised corerelation sets for the recieve shape within the listen.

chitchat
Top 10 Contributor
Posts 260
tomasr replied on Thu, May 11 2006 1:00 AM
Im not quite sure I understand here what you're building. Can you describe exactly what shapes you have inside each of your listen branches and how you configured each one?

(example: you have a receive shape with X and Y properties set and a delay shape on the other with Z value)

http://winterdom.com/

replied on Thu, May 11 2006 11:51 AM
Within the listen shape i have a recieve shape and a delay shape followed by a construct message on either sides followed by a send shape.

Recieve = Activate - True
Initialising correlation - requestcorrelationset
Delay = new System. Timespan (0,5,0,0)
Top 10 Contributor
Posts 260
tomasr replied on Thu, May 11 2006 12:01 PM
[quote user=\"chitchat \"]Within the listen shape i have a recieve shape and a delay shape followed by a construct message on either sides followed by a send shape.

Recieve = Activate - True
Initialising correlation - requestcorrelationset
Delay = new System. Timespan (0,5,0,0)


Is the listen shape the first shape in your orchestration?

It makes no sense to have an activatable receive unless the listen shape *is* the first shape in the orchestration (an activatable receive means that you hope to receive through it messages that activate a new instance of an orchestration). If it is like that, then the delay shape does not make sense, because there's no orchestration instance to timeout on before you receive the activating message.


A setup like yours only makes sense if there are other shapes before the listen shape, and you have a real activatable receive at the start of the orchestration. If that's the case, then the listen shape should contain a non-activatable receive that *follows* a correlation set (not initializes it).

Why do you need the delay shape? What are you trying to accomplish with it?

http://winterdom.com/

replied on Thu, May 11 2006 2:24 PM
deactivating the recieve solved the problem.
replied on Wed, Dec 17 2008 1:20 PM

I have a parallel Action with multiple recieve shapes for msgs I am subscribing to. i need to get all 4 messages within an hour or send an error message.

So I put listen shapes within the parallel convoy with delay shapes set to an hour delay.

Do you know how to accomplish this otherwise?

 

Thank You.

replied on Sun, Sep 20 2009 11:33 PM

Have a receive shape on the top of the orchestration that has message type of XMLDocument and set this to activate. this will now accept XML message of any kind and have your listen shape beneth this.

 

Hope that helps.

Cheers!!

Saurabh

 

Top 10 Contributor
Posts 241
xman71 replied on Mon, Sep 21 2009 8:48 AM

Hi,

   Delay shapes pause the execution of your orchestration. I would suggest setting each delay shape to a minute or two (not an hour) if your orchestration will be receiving all 4 msgs within a reasonable timeframe. When all 4 msgs are received, set a flag that will break out of your loop shape. You should also have a counter to track how much time has elapsed (when you are looping through to listen on all 4 msgs), when that counter goes over 1 hour, set a condition to send out an error message and break out of the loop.

    Good luck!

 

    Daniel.

 

"Google skills are more important than your coding skills."

Page 1 of 1 (8 items) | RSS