- 7 minutes to read

Configuration Changes

Information about the whereabouts of the Configuration Database and Logging Databases now needs to be updated to the Nodinite services and Web applications.

To avoid performing the following steps, please re-use the SQL Server cluster and/or listener names. If you are using stand-alone SQL Server instances, and not re-using the old Server name, the new name must be specified accordingly.

Note

Starting with Nodinite 7, all configuration is consolidated in appSettings.json. Nodinite 6 uses individual .config files and Settings.json for agents. Choose the appropriate section below for your version.

Configuration Overview

Core Service Nodinite 7 Nodinite 6 Restart Required
Logging Service appSettings.json Nodinite.Service.LoggingServiceHost.exe.config Yes
Monitoring Service appSettings.json Nodinite.Service.MonitoringServiceHost.exe.config Yes
Web API appSettings.json web.config Automatic
Log API appSettings.json web.config Automatic
Install and Update Tool N/A (not applicable) settings.json Restart App Pool
Pickup Service appSettings.json Settings.json Yes
Monitoring Agent appSettings.json Settings.json Yes

Logging Service Connection String

Nodinite 7: Logging Service - appSettings.json

Locate the appSettings.json file for the Logging Service

C:\Program Files\Nodinite\Nodinite Core Services\Logging Service\appSettings.json

Replace the unencrypted connection string in the ConnectionStrings section. On startup, the system will automatically protect it using certificate-based encryption (see Secret Management for details):

{
  "ConnectionStrings": {
    "NodiniteConfig": "Data Source=NEW_SERVER;Initial Catalog=NodiniteConfig_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True"
  }
}

After restart, the connection string will be automatically encrypted using a certificate stored in the Windows Certificate Store:

{
  "ConnectionStrings": {
    "NodiniteConfig": "PROTECTED_1.WindowsCertificateStore.49668D35CB1998EE77BAC23BC03AB216A60BC435.AES256-RSA-OAEP.DAAAAIyeM8nFLdKAv+ccvwABAABHndXWuyuHO0ig9mkeitKg9DrGDW0seFJZ5EzN56xVXmzf96+tTTChrSXZOFOJUfqj6ssrjsKNALfW/r8M/4PQ3U6vMqg5oGSy3Cc0o9Gw5e/zAE2NeQe3KIBN/trSJnx+VCQjZVLr5F5oMuHkyCi1EHWQf4I9ZA3PyirInaJYPJ2IXY3Ql49vfu3PeCP8l1dnobFgLODbysmsjXb3MtMuqqWd2NJ5VsOP2iCAyOrZepfOAkM3BE0y6khWWQzdcNCJXl3XDQQbzD34JWJjA87g8pXaw3Q3ra+i8HYgF0EI3jAhaoT5eR95O98zIu30ZIZwLS0K7xZQ+Q6/ZwINiRZ3EAAAAKo1DSTET2uIS1AG0i9lpPvGHOKYml91DgazU05Wg5rhHt3WYE5jqt0HF3TGw81vWztnI9wvTmWJjBvk+T7i6aKbjzyNvm0uJb+ccrYYc9y7zVOxGeGknOsZ68qPWy08u+s2AgSTXbCvHOpCi7To5rITCXNggyAf788ZEo2cFbQsImrcdaKd1Gjc8M61"
  }
}

Nodinite 6: Logging Service - exe.config

Locate the .config file for the Logging Service

C:\Program Files\Nodinite\%ENVIRONMENT%\Nodinite Core Services\Logging Service\Nodinite.Service.LoggingServiceHost.exe.config

Replace the connection string with the unencrypted value:

...
  <connectionStrings>
    <add name="NodiniteConfigDatabase" connectionString="Data Source=NEW_SERVER;Initial Catalog=NodiniteConfig_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True" />
  </connectionStrings>
...

Note: After saving and restart, Nodinite will automatically encrypt this connection string using the Windows Data Protection API (DPAPI).

Monitoring Service Connection String

Nodinite 7: Monitoring Service - appSettings.json

Locate the appSettings.json file for the Monitoring Service

C:\Program Files\Nodinite\Nodinite Core Services\Monitoring Service\appSettings.json

Replace the unencrypted connection string using certificate-based encryption (see Secret Management for details):

{
  "ConnectionStrings": {
    "NodiniteConfig": "Data Source=NEW_SERVER;Initial Catalog=NodiniteConfig_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True"
  }
}

Nodinite 6: Monitoring Service - exe.config

Locate the .config file for the Monitoring Service

C:\Program Files\Nodinite\%ENVIRONMENT%\Nodinite Core Services\Monitoring Service\Nodinite.Service.MonitoringServiceHost.exe.config

Replace the connection string with the unencrypted value:

...
  <connectionStrings>
    <add name="NodiniteConfigDatabase" connectionString="Data Source=NEW_SERVER;Initial Catalog=NodiniteConfig_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True" />
  </connectionStrings>
...

Note: After restart, the connection string will be automatically encrypted using Windows Data Protection API (DPAPI).

Web API Connection String

Nodinite 7: Web API - appSettings.json

Locate the appSettings.json file for the Web API

C:\Program Files\Nodinite\Nodinite Core Services\Web API\appSettings.json

Replace the unencrypted connection string using certificate-based encryption (see Secret Management for details):

{
  "ConnectionStrings": {
    "NodiniteConfig": "Data Source=NEW_SERVER;Initial Catalog=NodiniteConfig_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True"
  }
}

Nodinite 6: Web API - web.config

Locate the web.config file for the Web API

C:\Program Files\Nodinite\%ENVIRONMENT%\Nodinite Core Services\WebAPI\web.config

...
  <connectionStrings>
    <add name="NodiniteConfigDatabase" connectionString="Data Source=NEW_SERVER;Initial Catalog=NodiniteConfig_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True" />
  </connectionStrings>
...

Log API Connection String

Nodinite 7: Log API - appSettings.json

Locate the appSettings.json file for the Log API

C:\Program Files\Nodinite\Nodinite Core Services\Log API\appSettings.json

Replace the unencrypted connection string using certificate-based encryption (see Secret Management for details):

{
  "ConnectionStrings": {
    "NodiniteConfig": "Data Source=NEW_SERVER;Initial Catalog=NodiniteConfig_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True"
  }
}

Nodinite 6: Log API - web.config

Locate the web.config file for the Log API

C:\Program Files\Nodinite\%ENVIRONMENT%\Nodinite Core Services\LogAPI\web.config

...
  <connectionStrings>
    <add name="NodiniteConfigDatabase" connectionString="Data Source=NEW_SERVER;Initial Catalog=NodiniteConfig_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True" />
  </connectionStrings>
...

Install and Update Tool Connection String

Nodinite 7: Install and Update Tool - Not applicable

In Nodinite 7, the Install and Update Tool is no longer in use. Configuration is managed via appSettings.json in each Core Service.

Nodinite 6: Install and Update Tool - settings.json

Locate the settings.json file for the Install and Update Tool

C:\Program Files\Nodinite\Nodinite Update\UpdateClient\App_Data\settings.json

Change the Server (NOTE: this may include the named instance name) and Name values accordingly:

...
        "Installations": [
        {
          "Environment": "Dev",
          "LastVersion": "5.0.0.75",
          "DatabaseInstallation": {
            "ServiceAddress": "http://localhost:8000/Nodinite/Service/Update/",
            "AccountName": ".\\NodiniteService",
            "Database": {
              "Server": "NEW_SERVER",
              "Name": "NodiniteConfig_Dev"
            }
          },
...

Important

After changing the connection string, you must restart the IIS Application Pool for the Install and Update Tool to pick up the new settings.

Log Database Information

This step applies to both Nodinite 6 and 7.

This script creates another TSQL script. Use it to change the SQL Server Database instance name for selected Log Databases in the LogTables table in the Configuration Database (name like the @prefix variable).

Change the @prefix, @oldServerName and @newServerName parameters as appropriate and run from the Configuration Database database in SSMS.

DECLARE @sql NVARCHAR(max) =''
DECLARE @prefix NVARCHAR(255) =  'NodiniteLog_Dev_'
DECLARE @oldServerName NVARCHAR(255) =  'localhost'
DECLARE @newServerName NVARCHAR(255) =  'MYOTHERSQLDATABASE[\InstanceName]'
DECLARE @length INT
SET @length = LEN(@prefix) 

;WITH nodinitelogdatabases ([Database]) as
(SELECT [Database] From LogTables Where [Database] Like (@prefix + '%'))
Select @sql += 'UPDATE LogTables SET [Server] = ''' + @newServerName + ''', [HOST] = ''' + @newServerName + ''''  + ' WHERE [Database] = ''' + l.[Database] + '''' + ' AND [Server] = ''' + @oldServerName + ''''   + CHAR(13)+CHAR(10) 
FROM nodinitelogdatabases l
ORDER BY [Database]
Print @@Rowcount
Print @sql

This script creates another script that you can use to update the Server column in the LogTables table in the Configuration Database.

Important

If you are running SQL Server in the cloud (SQL Server Managed Instance) and you are moving to another managed instance, you must update the ´HOST´column accordingly.

Pickup Service Connection String

Nodinite 7: Pickup Service - appSettings.json

Locate the appSettings.json file for the Nodinite Pickup Log Events Service Logging Agent

C:\Program Files\Nodinite\Logging Agent - Pickup Service\appSettings.json

Replace the unencrypted connection string using certificate-based encryption (see Secret Management for details):

{
  "ConnectionStrings": {
    "ConfigurationDatabase": "Data Source=NEW_SERVER;Initial Catalog=NodiniteConfig_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True"
  }
}

Nodinite 6: Pickup Service - Settings.json

Locate the Settings.json file for the Nodinite Pickup Log Events Service Logging Agent

C:\Program Files\Nodinite\Logging Agent - Pickup Service\Settings.json

...
  <connectionStrings>
    <add name="ConfigurationDatabaseConnectionString" connectionString="Data Source=NEW_SERVER;Initial Catalog=NodiniteConfig_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True" />
  </connectionStrings>
...

Monitoring Agent Databases

If you are also moving the Nodinite Monitoring Databases, update the connection string as follows:

Nodinite 7: Monitoring Agent - appSettings.json

Locate the appSettings.json file for the Monitoring Agent

C:\Program Files\Nodinite\Monitoring Agent\appSettings.json

Replace the unencrypted connection string using certificate-based encryption (see Secret Management for details):

{
  "ConnectionStrings": {
    "MonitoringDatabase": "Data Source=NEW_SERVER;Initial Catalog=NodiniteMonitoring_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True"
  }
}

Nodinite 6: Monitoring Agent - Settings.json

Locate the Settings.json file for the Monitoring Agent

C:\Program Files\Nodinite\Monitoring Agent\Settings.json

Replace the connection string:

...
  <connectionStrings>
    <add name="MonitoringDatabaseConnectionString" connectionString="Data Source=NEW_SERVER;Initial Catalog=NodiniteMonitoring_Dev;Integrated Security=True;Connection Timeout=60;TrustServerCertificate=True" />
  </connectionStrings>
...

Next Step

Configuration updated? Continue with: