multiple IMA (same partner operation) support. We don't support this today. Correlation is the issue with this. Consider,
.... Receive (cSet1 init=yes, cSet2 init=no) .. Receive (cSet3 init=yes, cSet2 init=no) ....
In general we can say that it is the same message that comes to IMAs that are of same type, this example is to suggest that isin't the case.
Engine can't blindly route the message to first receive or second receive. What if the message has optional data structure to it, and cSet1 and cSet3 depended on mutually exclusive optional message information. For instance if the message came with the optional data that is used to construct "cSet3", but engine routes it to the first receive, we may not be able to construct "cSet1" and that will result in a standard fault to be thrown. Had the engine somehow figured this and abstained from routing it to first receive, we would not have an issue.
I am documenting it here so that we attempt to solve this when we implement multiple receives.