Recently, I came across an issue in which the customer was not able to see the BizTalk Groups that they have added to the BizTalk Administrator Console. They were only able to see the local BizTalk Group and not the other BizTalk Groups they have added.
We were able to successfully add the other BizTalk Groups to the BizTalk Admin Console. Once we closed the console and re-open it, we were only able to see the local group in the Admin Console and not the other Groups added. BizTalk Server version: BizTalk 2013.
Below is the step by step analysis that we did find the root cause of the issue:
1. The Admin Console loads the Groups in BizTalk from the config file at %USERPROFILE%\AppData\Local\Microsoft Corporation\Microsoft BizTalk Server 2013. So naturally our first step was to check if the required entries are written to this config file. It had the required entries which means this process is working as expected and moreover there would not be any permission issues to access the file by the Admin Console.
2. We analyzed the issue further by taking some traces and found that the issue was due to registry key InstallDate which is located at HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\BizTalk Server\3.0\InstallDate
(When Admin Console loads group info from the .config file, it compares the SavedTime value in the .config file with the InstallDate and InstallTime registry key values)
3. We noticed following behavior:
a. If the first number (before first occurrence of ‘/’) in InstallDate is less than or equal to 12, BizTalk Administration Console works as expected.
b. If the first number in InstallDate is greater than 12, BizTalk Administration Console fails to load the BizTalk Groups stored in .config file
This gave us hint that this could be due to incorrect Date parsing.
4. As Date format is dependent on the language of the OS, we checked the current language on the customer’s machine, it was French (Canada).
5. On further analysis we found that the issue was that the customer was switching the System Language from “French (Canada)” to “French (France)” when installing SQL 2008 R2 because they were facing issues installing SQL 2008 R2 using an operating system in language “French (Canada)”.
Now, after installing the SQL they installed BizTalk Server on the same box so the InstallDate registry values was created using French (France) format which is dd/MM/yyyy. Then they changed the language back to French (Canada) due to which few internal validations were failing in BTS Admin Console since French (Canada) expects format M/d/yyyy. Unfortunately, we could only see these errors in Process Monitor and BizTalk tracing as these errors were not visible in event log or Admin Console.
The above was breaking one of the pre-requisites which was not documented earlier so as a best practice please follow the below:
BizTalk Server is installed after SQL Server, so in such scenarios when you require to change the system language, you should switch the System Language after installing SQL but before installing BizTalk.
If you are already in this state, then you can modify the InstallDate value so it works with the current system language setting. (Make sure to save out the registry key first so you have the option to revert your change).
Hope this helps.