This post describes how to disable reporting to the warehouse and the OLAP cube for an entire Team Project Collection. It also discusses why you may want to do so. But first:
Bottom Line Up Front: Pass only the Collection Name and the state value FullyDisabled to the SetWarehouseJobEnabledState web method in the WarehouseControlWebService.
When to Disabling Reporting
One of the main reasons to disable reporting for an entire TPC is for proof of concept work. For instance, we are currently moving a IBM Rational ClearQuest implementation to TFS 2010 for a client of ours. Since we’ll want to run one or more test migrations, we’d like to have a separate TPC. This prevents work item IDs from getting ‘used’ from their core TPC, which has a tendency to throw people off. They would go from IDs in the thousands to IDs in the tens of thousands over night. Not a huge problem, but one we can easily avoid. Thus, the new TPC. But we also don’t want to have all the test migration data flow into the data warehouse and the cube, thus muddying the data there.
Thus, when doing test work that doesn’t involve the data warehouse and cube, disabling the data warehouse is an important step to keep things clean.
How to Disable Reporting
It’s pretty easy, and can be done in only a few steps.
Browse to the WarehouseControlWebService
If you’re on a TFS app tier the URL is likely http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx. (The only caveat being if you’ve put TFS under a non-standard virtual directory, in which case you’d need to replace the /tfs/ above with your virtual directory.)
Invoke the SetWarehouseJobEnabledState method
This will bring up the SOAP UI for setting the enabled states of various parameters. For a full list of parameters for TFS 2010
For the collectionName value, enter your Team Project Collection name, leave the jobName blank, and enter FullyDisabled in the state field. Click Invoke.
Validate the services are disabled
Go back to the WarehouseControlWebService page, and click the GetJobProperties. Enter no data in any of the fields and click Invoke.
You are provided with a list of Job settings. Scroll down to the collection name and verify that the EnabledState is FullyDisabled.
How to Enable Reporting
Of course, you may need to turn reporting back on. To do so, follow all the steps above, but in the SetWarehouseJobEnabledState method, pass in Enabled (instead of FullyDisabled), and click Invoke. That’s it! You can then verify using the GetJobProperties method, if you like.
You may also want to enable or disable individual jobs, instead of removing the entire collection from warehouse and cube processing. To do so, you can specify an individual jobName in the SetWarehouseJobEnabledState method. To find out all of the job names that are available to you, run the GetJobProperties method. Note that some jobs are specified at the server level, and others at the collection level. For those at the server level, you must leave the collectionName parameter blank when using the SetWarehouseJobEnabledState method.
Here are the names of the jobs in a default install of TFS 2010:
Server / Instance Level:
- Common Structures Warehouse Sync
- Full Analysis Database Sync
- Incremental Analysis Database Sync
Team Project Collection (TPC) Level:
- Build Warehouse Sync
- Common Structures Warehouse Sync
- Test Management Warehouse Sync
- Version Control Warehouse Sync
- Work Item Tracking Warehouse Sync
Example results from a GetJobProperties call, from a default TFS install, is provided in the image below.