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 theHostvalue (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 useServerfor the instance andLinkedServerNamefor 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. WithIsCloudServer=trueand an emptyHost, the services can't reach the databases. An empty value on Azure SQL makes Nodinite trylocalhost. - Match an existing Linked Server.
LinkedServerNamemust 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
\INSTANCEinServerand inLinkedServerName. - Availability group detection needs permission. The service account needs
VIEW SERVER STATEon 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
Related Topics
- System Parameters
- Logging Service
- Log Databases
- Configuration Database
- AvailabilityGroupBackupPath
- LogDatabaseRecovery
- SqlPackageExecutable
- SqlPackageParams
- EnvironmentName
- SQL Server Options
Note
Nodinite v6 and its Install and Update Tool are no longer supported.