On our Team Foundation Server, the job to process to Data Warehouse failed with a TF221122 error and I was unable to manually process the Data Warehouse.
Rebuilding the Data Warehouse from the Team Foundation Server Administration console did not work either so I decided to backup the TFS_Analysis database and to delete it. Next, I tried to rebuild it through an elevated command prompt with the RebuildWarehouse command. This command also fails at some point throwing an Unhandled ArgumentNullException:
C:\Program Files\Microsoft Team Foundation Server 2010\Tools>tfsconfig rebuildwarehouse /all /reportingdatasourcepassword:*********
Logging sent to file C:\ProgramData\Microsoft\Team Foundation\Server Configuration\Logs\CFG_CFG_RPT_0429_134558.log
Command: rebuildWarehouse
TfsConfig - Team Foundation Server Configuration Tool
Copyright (c) Microsoft Corporation. All rights reserved.
The warehouse relational database was successfully rebuilt.
Unhandled Exception: System.ArgumentNullException: Value cannot be null.
Parameter name: name
at System.Security.Principal.NTAccount..ctor(String name)
at Microsoft.TeamFoundation.Warehouse.OlapCreator.AddAccountToRole(Role role, String accountName, Boolean throwOnError)
at Microsoft.TeamFoundation.Warehouse.OlapCreator.AddAccountsToRole(Database database, String roleName, IEnumerable`1 accountNames, Boolean ignoreAccountResolutionFailures)
at Microsoft.TeamFoundation.Warehouse.OlapCreator.CreateOrUpdateRoles(Serverserver, Database database, IEnumerable`1 serviceAccountNames, Boolean ignoreServiceAccountResolutionFailures, IEnumerable`1 readerAccountNames, Boolean ignoreReaderAccountResolutionFailures)
at Microsoft.TeamFoundation.Warehouse.OlapCreator.CreateOlapSchema(Boolean rebuild, IEnumerable`1 serviceAccountNames, IEnumerable`1 readerAccountNames, String dataSourceAccount, String dataSourcePassword, Boolean ignoreServiceAccountResolutionFailures, WarehouseConfig warehouseConfiguration, Int32 olapLCID)
at Microsoft.TeamFoundation.Warehouse.WarehouseConfigurationService.ConfigureOlapDatabase(String reportingConfigurationIdentifier, String serverName, StringinstanceName, String databaseName, String warehouseServerName, String warehouseInstanceName, String warehouseDatabaseName, IEnumerable`1 serviceAccountNames, IEnumerable`1 readerAccountNames, String dataSourceAccountName, String dataSourceAccountPassword, Boolean ignoreServiceAccountResolutionFailures, Int32 translationLCID, Boolean createDatabase, Boolean generateSchema, Dictionary`2 processingParameters, Boolean checkAndUpdateJobs)
at Microsoft.TeamFoundation.Configuration.CommandLine.CommandRebuildWarehouse.ExecuteCommand()
at Microsoft.TeamFoundation.Configuration.CommandLine.ConfigurationCommandLine.RunCommand(String commandName, String[] args, Boolean& showExitCode)
at Microsoft.TeamFoundation.Client.CommandLine.RunCommand(String[] args)
at Microsoft.TeamFoundation.Client.CommandLine.Run(String[]& args)
at Microsoft.TeamFoundation.Configuration.CommandLine.TfsConfig.Main(String[] args)
Going back to the Team Foundation Server Administration Console, in the Reporting section, I noticed that the account for accessing the data sources was no longer filled in.
Also notice the message on the bottom of this dialog that states that a new database will be created and populated for use with Team Foundation Server. The database will be created when you click the OK button.
The next thing I did was manually process the Data Warehouse and I was glad to see that the jobs run successfully this time:
