TFS 2008–New Area Path values are not available in work items

blackhole

PROBLEM:

I recently worked with a client to migrate his TFS users from one active directory domain to a new one.  The TFS remained in the old domain, just the user accounts moved.  During the process of migrating the users (which is a whole other post entirely) we came across an issue where we were able to edit the Areas and Iterations for a Team Project but were unable to then use those new entries in our work items.  The new entries would not show up in the Area Path drop-down even though older (pre-migration) Area Path nodes would.

DIAGNOSIS:

We went round and round with this for a good 14hr day then, after exhausting all other options, contacted Microsoft PSS.  We spent a few hours on the phone with them and finally came to the conclusion that some of the Event Registrations were missing from the TFS database. 

The following step touches the TFS transactional databases.  This is not supported or encouraged by Microsoft or Notion Solutions.  The advice I am giving you is my own and not that of my employer. I take no responsibility if you totally hose your TFS by doing something dumb. NEVER add or edit data in the TFS transactional databases.  That is all!

Look at the tbl_subscriptions table in the TFSIntegration database.  You should see the following entries (among others):

1BuildCompletionEventhttp://:8080/WorkItemTracking/v1.0/Integration.asmx
2DataChangedEventhttp://:8080/WorkItemTracking/V1.0/SyncEventsListener.asmx
3ProjectCreatedEventhttp://:8080/Warehouse/v1.0/warehousecontroller.asmx
4DataChangedEventhttp://:8080/VersionControl/V1.0/Integration.asmx

If you don’t see them, specifically the DataChangedEvents then that is your problem.

SOLUTION:

We recreated these registrations in TFS and got the system up and running again with the correct Area/Iteration Path behavior.  The commands to recreate the registrations are:

BisSubscribe /eventType BuildCompletionEvent /address http://:8080/WorkItemTracking/v1.0/Integration.asmx /server

BisSubscribe /eventType DataChangedEvent /address http://:8080/WorkItemTracking/v1.0/SyncEventsListener.asmx /server

BisSubscribe /eventType ProjectCreatedEvent /address http://:8080/Warehouse/v1.0/warehousecontroller.asmx /server

BisSubscribe /eventType DataChangedEvent /address http://:8080/VersionControl/V1.0/Integration.asmx /server

The next evening we needed to migrate a single user that were missed the prior night, so we performed the migration steps again.  During our post-migration testing we found that the Area/Iteration Path entries weren’t updating any more.  We reapplied the our earlier fix and it all restarted. 

REASON:

We used the TFS 2008 Quiescing tool (TFSQuiesce.exe) to cleanly bring the server down prior to our migration.  Part of the quiescing process looks like it removed some of the event registrations to ensure that there was no activity on the server during servicing. It is my belief that when we ran it the second time to unquiesce the server, it failed to recreate the registrations listed above.

RESOURCES:

MSDN: TFS 2008 Problem with Area/Iteration after Doing a Move: http://support.microsoft.com/?kbid=951976