Given that you have an Identify instance T1 which uses the Window authentication and its current session mode is SQLServer state whose connection string has the multiSubnetFailover setting, you need to do the following steps to ensure those settings stuffs kept after upgrading to version 5.5.
You should verify the current XmlConfiguration of the Identify instance T1 before you start upgrading it. The steps are:
- Access the IdentifyTenant database and run the following script to view all [XmlConfiguration] data (Note: you need to replace #TenantT1 with your own instance name)
1 2 3 4 5 6 7 8 9 |
SELECT [TenantId] ,[Name] ,[Version] ,[XmlConfiguration] ,[ConfiguratorId] FROM [dbo].[Tenant] WHERE [XmlConfiguration] LIKE '%sessionStateMode="InProc"%' AND [Name] IN ( N'#TenantT1') GO |
Otherwise, when you look closer at the returned records, you will see something like the sample below:
1 2 3 4 5 |
<configuration> <tenant name="idp511v4517win" serverCount="0" sessionStateMode="InProc" timeout="60" sqlStateServerConnectionString="" processIdentity="DOMAIN\sqladmin11"> ... </tenant> </configuration> |
1 2 3 4 |
UPDATE [dbo].[Tenant] SET [XmlConfiguration]=REPLACE(REPLACE([XmlConfiguration],N'sessionStateMode="InProc"',N'sessionStateMode="SQLServer"'),N'sqlStateServerConnectionString=""',N'sqlStateServerConnectionString="#Base64-encodingconnectionstring"') WHERE [XmlConfiguration] like '%sessionStateMode="InProc"%' AND [Name] IN ( N'#TenantT1' ) |
1 2 3 4 |
UPDATE [dbo].[Tenant] SET [XmlConfiguration]=REPLACE(REPLACE([XmlConfiguration],N'sessionStateMode="InProc"',N'sessionStateMode="SQLServer"'),N'sqlStateServerConnectionString=""',N'sqlStateServerConnectionString="ZGF0YSBzb3VyY2U9V0lOMksxMlNVQlxTUUxFWFBSRVNTO2luaXRpYWwgY2F0YWxvZz1JZGVudGlmeVNlc3Npb25zdGF0ZTtUcnVzdGVkX0Nvbm5lY3Rpb249VHJ1ZTs="') WHERE [XmlConfiguration] like '%sessionStateMode="InProc"%' AND [Name] IN ( N'#TenantT1' ) |
- In order to verify the current Identify instance which 's already enabled its MultiSubnetFailover, access the IdentifyTenant database and run the following script to view all [XmlConfiguration] data with its multiSubnetFailover (Note: you need to replace #TenantT1 with your own instance name)
123456789SELECT [TenantId],[Name],[Version],[XmlConfiguration],[ConfiguratorId]FROM [dbo].[Tenant]WHERE [XmlConfiguration] NOT LIKE '%multiSubnetFailover="True"%'AND [Name] IN ( N'#TenantT1')GO
If there's no returned record, you can jump to the instance upgrade process.
Otherwise, when you look closer at the returned records, you will see something like the sample below:
1 2 3 4 5 6 7 |
<configuration> <tenant name="idp511v4517win" serverCount="0" sessionStateMode="SQLServer" timeout="60" sqlStateServerConnectionString="removed" processIdentity="DOMAIN\sqladmin11"> <database server="removed" dbLogin="" dbPassword="" schema="removed" userLgin="removed" loginCredential="removed" dbAuthenticationType="WindowsAuthentication" /> ... <audit provider="SQLDatabase" host="removed" db="IdentifyAudit" username="removed" password="removed" port="1433" timeout="60" authType="WindowsAuthentication" /> </tenant> </configuration> |
or
1 2 3 4 5 6 7 |
<configuration> <tenant name="idp511v4517win" serverCount="0" sessionStateMode="SQLServer" timeout="60" sqlStateServerConnectionString="removed" processIdentity="DOMAIN\sqladmin11"> <database server="removed" dbLogin="" dbPassword="" schema="removed" userLgin="removed" loginCredential="removed" dbAuthenticationType="WindowsAuthentication" multiSubnetFailover="False" /> ... <audit provider="SQLDatabase" host="removed" db="IdentifyAudit" username="removed" password="removed" port="1433" timeout="60" authType="WindowsAuthentication" multiSubnetFailover="False" /> </tenant> </configuration> |
You need to add or update the multiSubnetFailover setting to True (Note: you need to replace #TenantT1 with your own instance name).
1 2 3 4 |
UPDATE [dbo].[Tenant] SET [XmlConfiguration]=REPLACE(REPLACE(REPLACE(REPLACE(REPLACE([XmlConfiguration],N'dbAuthenticationType="WindowsAuthentication"',N'dbAuthenticationType="WindowsAuthentication" multiSubnetFailover="True"'),N'authType="WindowsAuthentication"',N'authType="WindowsAuthentication" multiSubnetFailover="True"'),N'dbAuthenticationType="SQLServerAuthentication"',N'dbAuthenticationType="SQLServerAuthentication" multiSubnetFailover="True"'),N'authType="SQLServerAuthentication"',N'authType="SQLServerAuthentication" multiSubnetFailover="True"'),N' multiSubnetFailover="False"',N'') WHERE [XmlConfiguration] NOT LIKE '%multiSubnetFailover="True"%' AND [Name] IN ( N'#TenantT1' ) |
- Run the Identify configurator and upgrade the Identify instance as usual.
Now your instance uses the SQLServer session state and its connection string has the multi subnet failover setting set correctly. You won't need to do these manual steps again for future upgrades.
Note: we have prepared a new SQL script for the above steps to apply for all instances at once. There is also a setting to configure a set of instances that you want to skip. You can download it at 66354_XMLConfigurationAutoScript. Please note that you need to set the @sqlStateServerConnectionString and @excludedTenant parameters correctly before you can run it.