How to modify Windows Service Bus Connection string in an existing Service Bus Farm


If you have an already configured  Service Bus Farm, and you need to modify some or all of the Service Bus Connection strings (Gateway, SBFarm and Message Containers ) for whatever reason, such as SQL databases have been moved/renamed, wanted to add ‘Failover Partner’ attribute for Mirroring support, etc. please follow below steps (no information will be lost):

Please notice that Direct update of DB is not possible as – to adhere to Windows Server Security Guidelines all Secure strings are encrypted. Also – modifying db is not just enough – as there are many places where this info is present.

As an example, let’s imagine that we need to modify SB connection string to add “Failover Partner” attribute. The cmdlet would be like below:

 1.  Execute "SB-GetFarm" cmdlet, to collect information about your current configuration: Certificates thumbprint, connection string, RunAsAccount , MessageBrokerPort , etc. You will need that info on step 3.

 2.  Remove all nodes from the Service Bus Farm

 3. On one of the farm nodes, Restore the SBFarm using the new Connection string. As an example, let’s imagine that we need to modify SB connection string to add “Failover Partner” attribute. The cmdlet would be like below:

Restore-SBFarm -FarmCertificateThumbprint F91C37410FBE53B92E1B24FAC7A0D82EA4391B81 -GatewayDBConnectionString "Data Source=<SQL Server>;Failover Partner=<SQL Mirroring Server>;Initial Catalog=SbGatewayDatabase;Integrated Security=True;Encrypt=False" -SBFarmDBConnectionString "Data Source=<SQL Server>;Failover Partner= Mirroring Server>;Initial Catalog=SbManagementDBNew;Integrated Security=True;Encrypt=False" -EncryptionCertificateThumbprint  91C37410FBE53B92E1B24FAC7A0D82EA4391B81 -RunAsAccount <YourAccount> -MessageBrokerPort <MessageBrokerPort> -HttpsPort <HttpsPort> -TCPPort <TCPPort>

Note: The Restore-SBFarm cmdlet creates a new Service Bus for Windows Server farm database (SbManagementDBNew). You can delete the old Service Bus for Windows Server farm database. Once above cmdlet is executed, next two connections strings will have been changed: GatewayDBConnectionString and SBFarmDBConnectionString

4. On all new farm nodes, run the Add-SBHost :

$secure_string_pwd = convertto-securestring "<Your Password>" -asplaintext -force

Add-SBHost -SBFarmDBConnectionString "Data Source=<SQL Server>;Failover Partner=<SQL Mirroring Server>;Initial Catalog=SbManagementDBNew;Integrated Security=True;Encrypt=False" -RunAsPassword $secure_string_pwd -EnableFirewallRules $T

5. Call the Stop-SBFarm cmdlet to stop all Service Bus for Windows Server services on all hosts, that’s a prerequisite for next step.

6. Restore the message containers. This step is required to modify the connection string to the message containers. Remember that you can have more than one (For more information, see the Get-SBMessageContainer cmdlet).

 Restore-SBMessageContainer -Id 1 -ContainerDBConnectionString "Data Source=<SQL Server>;Failover Partner=<SQL Mirroring Server>;Initial Catalog=SBMessageContainer01;Integrated Security=True;Encrypt=False"

7. Call the Start-SBFarm cmdlet to start all Service Bus for Windows Server services on all hosts.

 

Hope you find it interesting!!

Comments (4)

  1. pm333 says:

    Hi,

    do you know if the Workflow Manager itself can also be set to use the failover partner? Or only the Service Bus needs to be configured accordingly?

    Thanks,

    Miklos

  2. Felipe.Senso says:

    Dear Miklos,

    Mirroring is officially supported for WFM databases  as described at msdn.microsoft.com/.../jj193487(v=azure.10).aspx

    Please, follow steps described at blogs.msdn.com/.../how-to-modify-workflow-manager-connection-string-in-an-existing-wmf-farm.aspx     to add "Failover Partner" atribute in WFM connection strings.

    Kind Regards,

    Felipe

    1. Felipe.Senso says:

      Hi Casey,

      Please, can you elaborate a bit further your question? Not sure to get it.

      To modify SB connection strings it is not required to restore Gateway Db. When executing Restore-SBFarm cmdlet it changed connection string for both GatewayDB and SBFarmDB.

      Kind Regards,
      Felipe.

Skip to main content