Last updated: 2019-02-11

ImLogLocations - System Parameter

The System parameter ImLogLocations is used to override the limited default locations of SQL Server and allows the Logging Service to create new Log Databases and/or files to be placed on different disks with a round robin pattern.

As you can see from the example image below, SQL Server has limited GUI options to determine which disks to use for DATA and Log.

sqldefaultdisklocationssettings
Example of default settings, image from SQL Server instance properties

System Parameter Name Data Type Values/Example Comment
ImLogLocations json json object as exemplified later on this page Default = null (SQL Server default settings apply)

This feature was introduced with version 4.3.0.26

JSON Structure and Examples

The Log Database has been designed to utilize multiple logical disks for different file groups to scale and to improve performance where needed. The following file groups exists for the Log Database:

  • Data
  • ImageData - Nodinite stores the payload of messages on SQL Pages outside of the Events table to limit fragmentation and pages used
  • Index - For use with clustered indexes and other indexes
  • Primary - SQL Default, Nodinite does not use this file group at all
  • Log - Transaction Log (Since we recommend Simple recovery mode this file should only grow during large delete operations) - Shrink as you like

The LastOrderDeployed is a positive zero (0) based value indicating which item in the array to use. The max value must therefor be number of items in array - 1.

Simple example with 1 disk to override the default SQL Path

data, index, imagedata and log are placed on the same disk H:.

{
	"Configurations": [{
		"CustomPathData": "H:\\MSSQLSERVER\\DATA\\",
		"CustomPathImagedata": "H:\\MSSQLSERVER\\DATA\\",
		"CustomPathIndex": "H:\\MSSQLSERVER\\DATA\\",
		"DefaultPath": "H:\\MSSQLSERVER\\DATA\\",
		"DefaultPathLog": "H:\\MSSQLSERVER\\LOG\\",
		"Order": 0
	}],
	"LastOrderDeployed": 0
}

Advanced example using 4 disks in 3 rotating groups

data, index and imagedata is rotated over 3 disks (K:, L: and M:) and the primary and transaction log is placed on the 4:th disk (N:).

{
	"Configurations": [{
		"CustomPathData": "K:\\MSSQLSERVER\\DATA\\",
		"CustomPathImagedata": "L:\\MSSQLSERVER\\DATA\\",
		"CustomPathIndex": "M:\\MSSQLSERVER\\DATA\\",
		"DefaultPath": "N:\\MSSQLSERVER\\DATA\\",
		"DefaultPathLog": "N:\\MSSQLSERVER\\LOG\\",
		"Order": 0
	},
	{
		"CustomPathData": "M:\\MSSQLSERVER\\DATA\\",
		"CustomPathImagedata": "K:\\MSSQLSERVER\\DATA\\",
		"CustomPathIndex": "L:\\MSSQLSERVER\\DATA\\",
		"DefaultPath": "N:\\MSSQLSERVER\\DATA\\",
		"DefaultPathLog": "N:\\MSSQLSERVER\\LOG\\",
		"Order": 1
	},
	{
		"CustomPathData": "L:\\MSSQLSERVER\\DATA\\",
		"CustomPathImagedata": "M:\\MSSQLSERVER\\DATA\\",
		"CustomPathIndex": "K:\\MSSQLSERVER\\DATA\\",
		"DefaultPath": "N:\\MSSQLSERVER\\DATA\\",
		"DefaultPathLog": "N:\\MSSQLSERVER\\LOG\\",
		"Order": 2
	}],
	"LastOrderDeployed": 0
}

Frequently asked questions

Common problems and FAQ for the System Parameters not found on this page can be found in the troubleshooting page.

How do I change the value?

Changing a value for any of the pre-defined System Parameters is described in the generic 'How do I change the System Parameters' article.


Next Step

Administration