Correlation Internals

Home Page Forums BizTalk 2004 – BizTalk 2010 Correlation Internals

Viewing 1 reply thread
  • Author
    Posts
    • #12731

      I don’t remember whether i have tried this or not but just like in c# (because it is c#) if you want to use a variable after an IF statement which wasnt initialized before the IF statement, every possible path of that IF statement must intialize that variable otherwise that variable might still be uninitilized (null) and the compiler won’t permit that. So if you have an IF branch, you need to initialize the correlation in each branch, otherwise there’s a possibility of the correlation not being initialized therefore orchestration will bomb and the compiler knows that.

      Gino

    • #12732

      [quote:7afdfa635d]What can cause this message for a non-activation receive?
      1. You must specify at least one already-initialized correlation for a non-activation receive that is on a non-selfcorrelating port. [/quote:7afdfa635d]

      this is really simple. since all messages get dropped into the messagebox, you need to follow a correlation for the biztalk server to be able to route the message to that particular correlation. If the message does not carry some identification info, there’s no way for biztalk server to know which particular instance of the orchestration is waiting for that message. If you need to have two receive shapes which do not follow a correlation then you need to have either a listen shape or a parellel shape marking both receives as activating.

      Gino

      • #12733

        Sometimes you think you understand this stuff, then you realize you really don’t!

        Given that a Correlation Type is a C# class, and a Correlation Set must be a C# object, what does \”initialize correlation\” really do? Does it basically instantiate the object? And that is why you can’t do it more than once?

        Then what does following do – just change the value of the properties in the correlation set based on the current value of the promoted fields?

        What can cause this message for a non-activation receive?
        1. You must specify at least one already-initialized correlation for a non-activation receive that is on a non-selfcorrelating port.

        Why can’t you initialize correlation in a loop?
        Is it like I said above, you would be reinstantiating the same object over and over? Apparently, if your loop is in a scope, you can do it.

        Is there anyway to initialize correlation besides doing a send or receive?
        Could you do it in an expression or message assignment – I might try this later tonight?

        When would you select multiple correlation sets when you send a message?

        What if you have 4 sends in different branches of an if statement.
        You want them to all correlate on the same property field.
        It looks like we either have to create four correlation sets so each one can be initialized in each branch, or we have to somehow initialize earlier, then use following in each branch.

        Sorry, this is the brain dump of what I have been thinking about today.

        Neal Walters
        http://Biztalk-Training.com – Will probably be doing a correlation video in the near future! I’ve got to get this nailed first.

Viewing 1 reply thread
  • The forum ‘BizTalk 2004 – BizTalk 2010’ is closed to new topics and replies.