Since posting How TFS Proxy 2008 works, I have got a bunch of questions regarding TFS proxy.  I would like to share them with you (with my answers, of course) :)

 

  • Q: I got this error message: "source control proxy is not responding, so the request will be sent to the main server.  Please verify your settings." -- what happens now?
  • A: As long as the main server is functioning and reachable, your command/operation will continue to execute and will deliver the same results.  Version control proxy is a mean to speed things up by caching data locally on the proxy.  If TFS Proxy cannot server client's download request (for any reason), client will automatically fall back and download from the main server.

 

  • Q: Can I install TFS AT and Proxy on the same machine?
  • A: Technically, yes, you can, but it is known that the proxy cache statistics may show incorrect numbers.  Practically, there is no point in putting both AT and Proxy on the same machine.

 

  • Q: Can TFS Proxy cache work items?
  • A: No.  For TFS 2005/2008, TFS Proxy caches version control data only.

 

  • Q: Can TFS Proxy act as a surrogate server or a fail-over backup server?
  • A: No.  TFS Proxy merely caches version control data.  Authentication and security checks are still handled by the server.

 

  • Q: Any recommendation for proxy hardware?
  • A: It is hard to say without knowing the specifics (the size of your organization and projects, number of people in your away teams, etc)  However, the bottleneck will be disk space, disk I/O performance, and network bandwidth.

 

  • Q: When do I need a TFS proxy?
  • A: TFS proxy is good for these scenarios
    • Cache version control data locally so it takes less time for your away team, who have a slow connection to the main server, to sync their workspace.
    • Reduce disk I/O load on the main server by serving download requests so your main server can concentrate on other things (processing branch merge requests, responding to work item queries, ... etc)

 

  • Q: Say I have two away teams A, B.  They both have slow connections to the main server, but they have ok connection between them.  Is it possible to have team A's proxy downloading files from the main server and have team B's proxy downloading files from team A's proxy?
  • A: No.  TFS 2005/2008 Proxy can only download from the main server.

 

  • Q: Why is my TFS proxy just sitting there and not caching files?
  • A: TFS proxy does not prefetch files.  It caches version control items after a client, which is configured to use that particular proxy, made a download request.

 

  • Q: How do I assess my TFS proxy utilization?
  • A: You can look at the cache hit rates ( http://msdn.microsoft.com/en-us/library/ms400683.aspx ).  As a rule of thumb, the more people working in the same code branch, the bigger performance gain from TFS Proxy.  You can also retrieve proxy statistics programmically with this class Microsoft.TeamFoundation.Client.ProxyStatistics.