- 5 minutes to read

SqlServer - System Parameter

The SqlServer System Parameter describes the SQL Server that hosts the Nodinite databases: whether it is Azure SQL or an on-premises SQL Server, which server, instance, or listener name to use, and which Linked Server name to use for queries across Log Databases. The Logging Service, Monitoring Service, Log API, and Web API read it; the Logging Service relies on it most, when it creates new Log Databases.

Warning

Change this value only together with Nodinite Support or as a planned step in a database migration. A wrong value stops Nodinite from creating and reading Log Databases, which makes the Core Services non-operational.

At a Glance

Property Value
Key SqlServer
Data type json
Default Set during installation. Empty means on-premises localhost (see Value Format)
Read by Logging Service / Monitoring Service / Log API / Web API
Takes effect Within about 15 seconds; no restart needed
Status ✅ Active (change only with Support)

How It Works

Nodinite runs many Log Databases next to the Configuration Database. To create new Log Databases and to query across them, the services need to know what kind of SQL Server they talk to. SqlServer is the single place that holds this:

  • Azure SQL (IsCloudServer = true): the services use the Host value (the Azure SQL server's fully qualified name) for every operation, and no Linked Servers are involved.
  • On-premises SQL Server (IsCloudServer = false): the services use Server for the instance and LinkedServerName for queries that span databases (four-part names such as [localhost].[Nodinite_DEMO_Log].[sys].[database_files]). The Linked Server must exist on the SQL Server instance; see Linked Servers.
  • Always On Availability Groups: put the listener name in Server. The Logging Service detects the availability group and creates new Log Databases on the primary replica; see Always On Availability Groups and AvailabilityGroupBackupPath.

The installation sets the value from the environment's SQL Server settings, and an update keeps it. Adding Log Databases never changes it. You change it only when the databases move to another SQL Server (another server, instance, cluster name, listener, or Azure SQL); the Database Migration Planning checklist covers that step.

The parameter holds names and flags only. It stores no connection strings, user names, or passwords; connection strings are part of the Configuration Database setup.

Value Format

A JSON object:

Property Type Used when Meaning
IsCloudServer boolean Always true = Azure SQL; false = on-premises SQL Server. Missing or empty = false
Server string IsCloudServer = false SQL Server name, Server\Instance, failover cluster name, or availability group listener. Ignored for Azure SQL
Host string IsCloudServer = true Fully qualified Azure SQL server name, for example mynodinite.database.windows.net
LinkedServerName string IsCloudServer = false Name of the Linked Server used for queries across databases, for example localhost or localhost\SQLEXPRESS
Port string Not used Present in the structure but not used by Nodinite; leave empty
Protocol string Not used Present in the structure but not used by Nodinite; leave empty

When the value is empty or {}, Nodinite assumes an on-premises default instance on the same server: IsCloudServer = false, and Server, Host, and LinkedServerName = localhost. That fits a proof of concept on one server, not production.

Examples

Azure SQL:

{"IsCloudServer":true,"Server":"","Host":"mynodinite.database.windows.net","LinkedServerName":"","Port":"","Protocol":""}

On-premises, default instance:

{"IsCloudServer":false,"Server":"SQLSERVER01","Host":"","LinkedServerName":"localhost","Port":"","Protocol":""}

On-premises, named instance (escape the backslash in JSON):

{"IsCloudServer":false,"Server":"SQLSERVER01\\SQLEXPRESS","Host":"","LinkedServerName":"localhost\\SQLEXPRESS","Port":"","Protocol":""}

Always On Availability Group (listener in Server):

{"IsCloudServer":false,"Server":"AG-LISTENER","Host":"","LinkedServerName":"SQLNODE01","Port":"","Protocol":""}

Failover cluster instance (virtual network name in Server):

{"IsCloudServer":false,"Server":"SQL-CLUSTER","Host":"","LinkedServerName":"localhost","Port":"","Protocol":""}

Behaviour by Environment

Environment IsCloudServer Server Host LinkedServerName Behaviour
Azure SQL true Ignored Azure SQL server name Not used Host is used for everything; no Linked Servers
On-premises, default instance false SQLSERVER01 or localhost Not used localhost Queries across databases go through [localhost]
On-premises, named instance false SQLSERVER01\INST Not used localhost\INST The instance name is part of the Linked Server name
Always On Availability Group false Listener name Not used Detected New Log Databases are created on the primary replica
Failover cluster instance false Cluster name Not used localhost Linked Servers must exist on every node
Empty or {} false localhost localhost localhost Single-server defaults

Choosing a Value

  • Azure SQL needs Host. With IsCloudServer = true and an empty Host, the services can't reach the databases. An empty value on Azure SQL makes Nodinite try localhost.
  • Match an existing Linked Server. LinkedServerName must be the exact name of a Linked Server on the instance, with RPC and RPC Out enabled; see Linked Servers.
  • Named instances need the instance in both names. Put \INSTANCE in Server and in LinkedServerName.
  • Availability group detection needs permission. The service account needs VIEW SERVER STATE on the instance to detect the availability group.
  • One value for the whole environment. You can't set different SQL Servers for different Log Databases; contact Nodinite Support if you need that.
  • Kerberos errors ("Cannot generate SSPI context") come from SPNs or delegation, not from this parameter; see SPN and Trusted for delegation. Failover clusters also need MSDTC.

To check the JSON before you save it, use the validation described in Manage System Parameters (POST api/SystemParameters/SqlServer/ValidateJson).

Next Steps

Note

Nodinite v6 and its Install and Update Tool are no longer supported.