Search code examples
biztalkbiztalk-2010

Handling messages without subscription in BizTalk 2010


In BizTalk I am receiving a message of a known type which is a response of a message I send before. The current orchestration subscribes to the response via a correlation set. For a deployment I need to terminate some existing orchestrations, but new ones will be created which can be handled. Usually this can be fixed with a side-by-side deployment, however an update of a third party component requires me to terminate.

Is there some way I can route the routing failures which will occur after terminating to a different orchestration with the following constraints.\

  • I need the original message type to handle the message;
  • I am not interested in errors happening in the pipeline (which is also custom). Those should be suspended as usual.

I tried to play with filters on the receive shape, however it seems not to recognize the message as there is still a routing failure.

One alternative I thought of is to have no filter, but than I need to send some message if two orchestrations handles the same message, which should not occur in this solution.

The solution is only temporary, after one month all the old replies will be finished and the solution can be removed. So it should be easy to remove it without deployment (or downtime).


Solution

  • I see two possible options, and you would have to test each first.

    1. Enable Failed Message Routing and subscribe the failed responses to a Send Port
    2. Just let them suspend and use a WMI Script to save the messages. If you do this, you will also get the Context with all it's properties.

    Either way, you'd then need a process to resubmit them.