This week I was installing a brand new SQL Server 2016 AlwaysOn Availability group on Windows Server 2016 . As Always On Availability groups depend on an underlying Windows Cluster, the first step in the installation was building the cluster, after getting the necessary coffee.
Building a cluster means running the validation report and fixing any potential errors to avoid issues in the future and to ensure you get Microsoft Support. Since this was a quite simple setup (no shared storage, no funky network configuration, located in the same datacenter, 2 nodes, …) building & validating the cluster should be a walk in the park.
After adding my nodes to the validation wizard I quickly ran “all tests”. As the first red line in the validation report appeared after only 15 seconds, my initial enthusiasm quickly faded.
The validation test “List Operating System Information” failed. This test gathers some information about the underlying OS and should running just fine if all required access is ok. A bit unsettled I waited for the complete report to finish, so I could look into the exact error.
In the report a rather strange error appeared:
An error occurred while executing the test.
There was an error getting information about the operating systems on the node.
Culture is not supported.
Parameter name: culture
3072 (0x0c00) is an invalid culture identifier.
My first guess was the server in question was using some kind of language setting was off. After checking my locale using powershell I did not find the dreaded “3072” LCID.
Since the windows cluster is using WMI to query to the other nodes, I checked the locale using WMI.
There it was, the dreaded 3072 (or 0c00 in HEX) locale. After some searching around, it seemed the “3072” identifier is not documented in the list of Language Code Identifier (LCID) (https://msdn.microsoft.com/en-us/library/cc233982.aspx). If a locale is not part of the list, it can be assigned a temporary LCID at runtime.
After some looking around in the “Language” Control panel, I did notice we are using the “English-Belgium” date formatting, which is a new date formatting supported by Server 2016 & Windows 10.
After changing it to English – UK, I ran the validation wizard again. This time it completed successfully. All these new LCID’s documented in the MSDN article above are being translated into 0X0C00, which is causing trouble for the cluster validation. I checked with the team which had deployed the VM’s and the locale was changed by them.
So after making sure my other servers did not encounter this issue, I could finally start buiding my validated Windows Cluster.