Every once in a while, you may find that you need to manually refresh your Team Foundation Server 2010’s data warehouse. You’ll know you need to do that manual refresh when your TFS2010 reports start tossing off errors like “The Team System cube either does not exist or has not been processed” or “An error has occurred during report processing. (rsProcessingAborted) Query failed for dataset 'dsIteration'.” There are plenty of variations on that second error message depending on which dataset failed – dsPlatform, dsIterationDefault, dsIteration, dsLastProcessedTime, dsIterationParam, etc. Usually these errors mean that the TFS Job Agent 1) hasn’t run yet or 2) ran but encountered an error. The solution is a manual warehouse update.
When you run a manual TFS warehouse update, you basically make a bunch of calls to the TFS Warehouse web service by hand. The TFS Warehouse web service has methods that lets you view the status of your warehouse, the status of any warehouse jobs, and also start the various jobs. It’s not difficult to do but it’s somewhat tedious.
Back in the early days of TFS, Eric Lee wrote a utility to make the manual warehouse work easier. Unfortunately, Eric moved on from his gig at TFS and the utility hasn’t gotten any updates for a while.
Fret not! I spent some time and wrote a new version! You can install it by going to http://benday.com/WarehouseUtility.
Here’s how you use it:
1. Go to http://benday.com/WarehouseUtility and install the application
2. Type the name of your TFS application tier in the TFS2010 Server Name textbox
3. Click the Populate URL button or type
4. Click the Get Warehouse Status button to display the current state of your TFS2010 data warehouse.
5. Click Process Warehouse or Process Analysis to update the data warehouse or analysis service cube.
6. Watch the warehouse status to see if your job is running and whether that jobs succeeds or fails.
-Ben
-- Want some help with your Team Foundation Server or TFS Reports? Need some coaching on how to do Scrum in a TFS environment? Drop us a line at info@benday.com.