Time to get a some BizTalk-induced frustration off my chest ..
I’ve been struggling with this custom pipeline component I’ve written for the last
3 days now. It’s a cute little time, designed to write BAM events as messages pass
through the pipeline (Normally BAM is only used to monitor orchestration-level events).
The pipeline component works fine, events are being writting to the BAM tables, my
ComponentUI stuff works brilliantly and on it’s own everything seems to be fine …
EXCEPT .. when I come to using the component in a pipeline (which is what it’s designed
for), I can’t get a message through the pipeline into an orchestration! The message
dies with an error saying.
“Could not find a matching subscription for the message. “.
Normally this means that predicate-matching is failing to find any subscriptions for
the message, either because there’s a mismatch between the message schema and the
listening orchestation, or because the orchestration hasn’t been deployed (or bound).
But in this case, if I remove my custom pipeline, the whole thing works; which indicates
the problem is with my component. However, the component is simply passing the received
message straight out, and as messages are immutable, there should be no problem with
the subscription.
*cry* .. this thing is driving me up the wall !!
Solution: I finally figured out what I needed. Without an
XML disassembler in the pipeline, the message doesn’t get parsed and won’t be picked
up by the orchestration subscription. Makes sense in retrospect but I only figured
it out because I was flicking through the documentation and came across the difference
between the built-in XML and Pass-through pipelines. You know what they say, “Hindsight
is 20/20”.
>