Stephen W. Thomas http://www.BizTalkGurus.com
Hi Neal/Stephen, I have a similar issue like you have described. Did you get a solution for your problem? Could you please share the solution?
What exactly are you trying to do? Set up a correlation to receive a message?
If you give me a little more detail I might be able to help.
I have to map nearly 50,000 messages. If I map one after other then it takes nearly 25 hours for mapping. S0 I want to instantiate parallel mapping by triggering multiple instances of an orchestration. I am planning to instantiate nearly 16 instances in a loop so that each instance can handle nearly 4000 messages. So I thought of initializing correlation set in a loop and send 16 message to a folder. these messages instantiates 16 child orchestrations. I need to know when all 16 are complete. So I have put a receive shape in a loop for the same correlation set. The it failed with a compilation error "a correlation may be initialized only once". If I have to initialize a correlation set in a scope in side the loop then I cannot use the correlation set in another loop to receive the message. Also, I want the programming logic to determine the number of instances (16 or more or less) so I was unable to use parallel shape. I will not be able to change the map to loop through messages as I have nearly 30 maps with very complex logic. I am thinking to change the orchestration rather than changing 30 maps.
Basically, I am looking for parallel mapping in B1zTalk 2004 and the main orchestration need to know when all the mappings are complete. Any help would be great..!!!
Stephen, Do you have any suggestion for the above issue?
Neil,
>> The it failed with a compilation error "a correlation may be initialized only once"
Try using one send shape to initialize the correlation and another to send all subsequent messages. Since you have already initialized a correlation set on the first one, if you are sending out other messages on the second send, that use the same correlation token, I belive your receive will pick these up as well.
>> Also, I want the programming logic to determine the number of instances (16 or more or less) so I was unable to use parallel shape.
Could you not two smaller loops inside of a bigger loop? One small loop would be to publish (n) number of messages at a time, the other would be to wait to receive all of the responses (scatter/gatherer as you spoke of earlier). THese two loops would be contained inside of a bigger loop that knows when all of the mapping is complete. Not sure if this will allow you to complete your maps in the time frame you have available, but it should be faster than 25 hours.
Hope this helps somewhat
-Ben
Neal,
Sorry for misspelling your name in my earlier post.
Please note that my original post was back in 2006 - someone else recently asked if there was a solution. That was two projects ago for me.
I believe we ended up sending a dummy message. We temporarily used a send to a flat file directory that we just purged regularly. We also discovered that someone provided a free downloadable adapter, I believe one was called a NULL adapter and maybe one called a NOPE? adapter that just "ate" the messages.
It's still ashame there is no "InitCorrelation" command.
Neal
This option has worked well for us.. Thank you Ben.