Deepak Kumar Mishra, Team Foundation Server, EMEA Engineer brings us his experience on one of the issues that he came across few days back , where customer landed to an upgrade issue in Production server while upgrading from TFS 2012 UPDATE 1 TO tfs 2012 Update 4. So User had to go for a roll back so that TFS downtime did not impact the BAU process, then the user planned for doing a test upgrade and test if everything goes fine on the Test server and user needed Microsoft's assistance in this. First User wanted to replicate the exact production environment in the Test environment and then go for the upgrade on the test server. So it was a cloning scenario first and then an inplace upgrade.
We helped the user to set up the Cloning Environment of TFs 2012. While setting up the cloning Environment , we wanted to show the user the importance of the tfsconfig changeserverid command and what exactly it does. So , I tried to show the TFS GUID (TFS_Instance) to the user from the SQL Server Management Studio by right clicking on the TFS_Configuration database and then going to the Extended properties tab in theProperties. But to our surprise, we were unable to find the TFS_ INSTANCE property over there.
Please find the difference in the below Screen shots:
Note: Before executing the tfsconfig changeserverid command the TFS GUID for both the test and production environments are same. So it is a necessity to execute this command in order to make both these instances independent when both the environments are ON.
On doing a lot of research, we found that in TFS 2012 the TFS_INSTANCE property is not available in the Extended Properties section of the TFS_Configuration database properties and we could only see this information in the applicationId key of web.config file present in the below mentioned path:
C:\Program Files\Microsoft Team Foundation Server 11.0\Application Tier\Web Services\web.config
Earlier in TFS 2010 also we have this web.config file. You can also verify the instance ID in the databases (config and each collection) in tbl_DatabasePartitionMap:
select * from tbl_DatabasePartitionMap
Written by: Deepak Kumar Mishra
Reviewed by: Nitish Nagpal(Support Escalation Engineer), George Archer(Senior Escalation Engineer), Chris Cooker(TFS Dev Lead)