Search code examples
sql-serverservice-broker

Service broker: initiator's address is changing, should I recreate existing dialogs?


One of the systems I work with sends some data to the remote target, for audit purposes. Everything is working fine, but now guys on the initiator's side are reconfiguring their network, so the initiator will soon have a different external IP address.

I understand that I will have to update firewall rules and route information on the target side. No changes in the service broker configuration have to be made on the initiator, as far as I can tell - the target server doesn't move anywhere.

The problem is, we use persistent dialogs. I have skimmed briefly through documentation, but haven't found whether I should drop and recreate existing conversations, or they will automatically pick up route changes.

If I understand it correctly, actual network address should be updated on-the-fly, since we don't specify it directly in the BEGIN CONVERSATION statement. But what seems logical for initiator, doesn't always apply to the target.

Did anyone have any experience with the situation described? Or, chances are, I have overlooked this in the documentation?

Any help is appreciated, thanks in advance.


Solution

  • You are correct.

    You should just change the route on the target and that's it. The role of the route is exactly this, to separate the logical address ('service' name) from the physical location (hostname, IP address). Dialogs should survive network reconfiguration events w/o ever noticing the event.