When we make changes to our BizTalk environments, we always ensure that the changes are scripted so the Ops Team don’t really need worry about messing things up – as a result, we use Binding files everywhere. Normally, we do large scale solution deployments, but earlier this week we needed to update the subscription filter on a single Send Port; to my surprise, I was pleased to discover that Binding files can be used to update existing (unenlisted) Send Ports – no need to delete and re-create (via the binding file).
Consider the scenario above, we have a Send Port subscribing to messages where the Receive Port Name = ‘Sample Receive Port’:
To update the subscription using a bindings file, strip the Bindings file down to just the Send Port in question and update the <filters> element to include a new subscription (a filter on BTS.InboundTransportType has been added in this case, the operator of zero indicates that its an equals predicate):
With the Send Port in the unenlisted state, import the updated bindings file either BizTalk Admin Console or BTSTask and the filter conditions on the Send Port will be updated:
Enlist and start the Send Port!
Note that any configuration property on a Send Port can be updated in this way.