Bill Wang’s Blog

December 2, 2008

Troubleshooting TF55030 error while running RenameDT

Filed under: Uncategorized — Tags: — Bill @ 8:04 am

While running RenameDT command, many customers getting error message TF55030: Rename Data Tier failed. Please verify that the supplied Data Tier name is a valid Team Foundation Data Tier name, that the Data Tier can be accessed on the network and that you have administrative rights. This error message is not precise enough to reveal what’s going wrong. So I’m writing this blog to help users diagnostic TF55030 error.

RenameDT comes from TfsAdminUtil family. Setting environment variable TfsDetailedErrors to 1 will make TfsAdminUtil to generate more detailed information.

We run RenameDT when the name of DT is changed or after TFS is moved. In TFS 2008, RenameDT command will perform the following tasks:

  1. Get the old DT name from TFS_Install_Folder\Web Services\Services\Web.config. The connection string to the DT is stored in this configuration file.
  2. Compute the connection string to the new DT by replacing the old DT name in the connection string with the new DT name passed to RenameDT command. This is why we need to set the connection string in Web.config to point to the old TD. The old DT will not be affected.
  3. Update the connection string for TfsReportDS and TfsOlapReportDS in the reporting service used by TFS to use the new DT name.
  4. Update the DT name stored in TFS databases.
  5. Update the connection string stored in the Web.config.
  6. Restart the IIS.

Now we know what’s going on when running RenameDT. When meeting TF55030 error again, please checking following things:

You have enough permission to run RenameDT command.

You must be a member of the Team Foundation Administrators group and a member of the sysadmin group on SQL Server. Please read “Required Permissions” section of the MSDN document RenameDT Command for more information.

You can connect to the new DT in AT machine.

You can open SQL Server Management Studio or create a .udl file on AT machine, verify you can connect to the new DT.

Reporting service works correctly.

You can use ConfigureConnections command to view and modify the reporting service URL used by TFS. After TFS is moved, you need to point the TFS to the new reporting service instance before run RenameDT.

 

One part of moving reporting service is restoring the old reporting service encryption key. Encryption key is used to encrypt sensitive data stored in reporting service database. The connection strings used by data source TfsReportDS and TfsOlapReportDS are encrypted too. Thus the old encryption key must be restored so that RenameDT can read and update the connecting string used by TfsReportDS and TfsOlapReportDS.

 

The easiest way to check if encryption is restored correctly is opening the reporting service in web browser. The default URL is http://TfsServer/Reports. If you get error message like “The report server installation is not initialized. (rsReportServerNotActivated) (rsRPCError)“, then it’s probably caused by that the correct encryption key used by the old reporting service instance is not restored.

 

If the old encryption key is lost and your reporting service is only used by TFS, you can simply delete the encryption key and reconfigure the connection strings for data source TfsReportDS and TfsOlapReportDS. If you can browse reports then the encryption key should be restored correctly.

After the above checks, please run RenameDT again. If your scenario is not included in the above checklists, please let me know.

Advertisements

6 Comments »

  1. Hi Bill, I checked all the points and still get this error message.

    ERROR: Microsoft.TeamFoundation.Server.TfsAdminException: TF55030: Rename Data T
    ier failed. Please verify that the supplied Data Tier name is a valid Team Foun
    dation Data Tier name, that the Data Tier can be accessed on the network and tha
    t you have administrative rights. —> System.InvalidOperationException: Client
    found response content type of ”, but expected ‘text/xml’.
    The request failed with an empty response.
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClie
    ntMessage message, WebResponse response, Stream responseStream, Boolean asyncCal
    l)
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodN
    ame, Object[] parameters)
    at Microsoft.TeamFoundation.Proxy.Reporting.ReportingService.GetDataSourceCon
    tents(String DataSource)
    at Microsoft.TeamFoundation.Server.TfsDT.ChangeDataSources(String oldDataTier
    Name, String newDataTierName)
    at Microsoft.TeamFoundation.Server.TfsDT.Rename(String newDataSourceName)
    — End of inner exception stack trace —
    at Microsoft.TeamFoundation.Server.TfsDT.Rename(String newDataSourceName)
    at Microsoft.TeamFoundation.Server.TfsAdmin.RenameDataTier(TfsAdminContext co
    ntext, String newDataTierName)
    at Microsoft.TeamFoundation.Server.TfsAdminUtil.RunRenameDTUtil(List`1 parame
    ters, List`1 commandSwitches, String[] rawArgs)
    at Microsoft.TeamFoundation.Server.TfsAdminUtil.Run(String[] args)
    > Inner Exception:
    System.InvalidOperationException: Client found response content type of ”, but
    expected ‘text/xml’.
    The request failed with an empty response.
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClie
    ntMessage message, WebResponse response, Stream responseStream, Boolean asyncCal
    l)
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodN
    ame, Object[] parameters)
    at Microsoft.TeamFoundation.Proxy.Reporting.ReportingService.GetDataSourceContents(String DataSource)
    at Microsoft.TeamFoundation.Server.TfsDT.ChangeDataSources(String oldDataTier
    Name, String newDataTierName)
    at Microsoft.TeamFoundation.Server.TfsDT.Rename(String newDataSourceName)

    Comment by Ronny — February 4, 2009 @ 5:12 pm

  2. Hi Ronny

    The stack trace indicates the operation fails when changing the connection strings for TfsReportDS and TfsOlapReportDS in reporting service. But it doesn’t show why the operation fails. Could you manually update the connection strings for TfsReportDS and TfsOlapReportDS then run RenameDT again?

    Comment by Bill — February 5, 2009 @ 6:39 am

  3. When I tried to open the Reporting services I get this…
    Error
    The request failed with HTTP status 400: Bad Request.
    Home

    RenameDT still gives me the same error

    Comment by Johnny — April 3, 2009 @ 11:25 pm

  4. If the reporting service can’t event be browsed, you can contact the reporting service forum http://social.msdn.microsoft.com/forums/en-US/sqlreportingservices/threads/ for further troubleshooting.

    Comment by Bill — April 6, 2009 @ 10:40 am

  5. I’m getting the following error via TfsDetailedErrors=1, but I *can* browse reporting services just fine. Is there any place else I can look for possible errors? (That is — any ideas where I can look for the URL that’s giving a 404?)

    > tfsadminutil renameDT tfs-data

    TfsAdminUtil – Team Foundation Admin Utility
    Copyright (c) Microsoft Corporation. All rights reserved.

    Verifying new selected TFS data source TFS-DATA.
    Verified new selected TFS data source TFS-DATA as valid.
    ERROR: Microsoft.TeamFoundation.Server.TfsAdminException: TF55030: Rename Data Tier failed. Please verify that the supplied Data Tier name is a valid Team Foundation Data Tier name, that the Data Tier can be accessed on the network and that you have administrative rights. —> System.Net.WebException: The request failed with HTTP status 404: Not Found.
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
    at Microsoft.TeamFoundation.Proxy.Reporting.ReportingService.GetDataSourceContents(String DataSource)
    at Microsoft.TeamFoundation.Server.TfsDT.ChangeDataSources(String oldDataTierName, String newDataTierName)
    at Microsoft.TeamFoundation.Server.TfsDT.Rename(String newDataSourceName)
    — End of inner exception stack trace —
    at Microsoft.TeamFoundation.Server.TfsDT.Rename(String newDataSourceName)
    at Microsoft.TeamFoundation.Server.TfsAdmin.RenameDataTier(TfsAdminContext context, String newDataTierName)
    at Microsoft.TeamFoundation.Server.TfsAdminUtil.RunRenameDTUtil(List`1 parameters, List`1 commandSwitches, String[] rawArgs)
    at Microsoft.TeamFoundation.Server.TfsAdminUtil.Run(String[] args)
    > Inner Exception:
    Status Code: ProtocolError
    HTTP Response Code: NotFound
    System.Net.WebException: The request failed with HTTP status 404: Not Found.
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
    at Microsoft.TeamFoundation.Proxy.Reporting.ReportingService.GetDataSourceContents(String DataSource)
    at Microsoft.TeamFoundation.Server.TfsDT.ChangeDataSources(String oldDataTierName, String newDataTierName)
    at Microsoft.TeamFoundation.Server.TfsDT.Rename(String newDataSourceName)

    Comment by Ross J. Micheals — April 16, 2009 @ 5:09 pm

  6. Sorry — I copied and pasted the wrong error message in the previous comment. I am getting the following, similar error message (HTML clipped), and reporting services seems fine.

    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
    at Microsoft.TeamFoundation.Proxy.Reporting.ReportingService.GetDataSourceContents(String DataSource)
    at Microsoft.TeamFoundation.Server.TfsDT.ChangeDataSources(String oldDataTierName, String newDataTierName)
    at Microsoft.TeamFoundation.Server.TfsDT.Rename(String newDataSourceName)
    — End of inner exception stack trace —
    at Microsoft.TeamFoundation.Server.TfsDT.Rename(String newDataSourceName)
    at Microsoft.TeamFoundation.Server.TfsAdmin.RenameDataTier(TfsAdminContext context, String newDataTierName)
    at Microsoft.TeamFoundation.Server.TfsAdminUtil.RunRenameDTUtil(List`1 parameters, List`1 commandSwitches, String[] rawArgs)
    at Microsoft.TeamFoundation.Server.TfsAdminUtil.Run(String[] args)
    at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
    at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
    at Microsoft.TeamFoundation.Proxy.Reporting.ReportingService.GetDataSourceContents(String DataSource)
    at Microsoft.TeamFoundation.Server.TfsDT.ChangeDataSources(String oldDataTierName, String newDataTierName)
    at Microsoft.TeamFoundation.Server.TfsDT.Rename(String newDataSourceName)

    Comment by Ross J. Micheals — April 16, 2009 @ 5:15 pm


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Blog at WordPress.com.

%d bloggers like this: