DevOps Technology Blog | Azure DevOps Services, Team Foundation Server, Amazon Web Services and Microsoft Azure

How to cleanup/rebuild TFS server cache?

by XDK 19. June 2012 20:10

Explanation

I have been in situation where the cache clean job doesn’t get enough time to clean up old cache data and the flow of TFS server cache is more than the cache clean up which leads to production server outage and performance issues. The workaround mentioned in this post is expensive! means, It will consume more server resource which will affect the TFS server performance.

The Cache Cleanup can take long time on a very large drive. I would recommand to go with the Recommanded Workaround without affecting the server performance rather than workaround.


Workaround

1. To redirect the cache to different drive

  • Create a new cache folder in the drive with more free space.
  • Open Properties dialog for the new cache folder
  • On the Security tab, choose Edit --> The Permissions dialog box opens.
  • Choose Add --> The Select Users, Computers, or Groups dialog box opens.
  • Add the local group TFS_APPTIER_SERVICE_WPG, and then choose OK.
  • Select the Modify check box, clear all other check boxes, and then choose OK.
  • Open <TFS Server InstallDIR>\Application Tier\Web Services\web.config file
  • Add a line to the appSettings section

              <add key="dataDirectory" value="new cache folder" />

  • Save and close the web.config file.
  • Wait for sometime (may be 2 mins) for new setting in web.config to take effect
  • Delete the old cache root folder

2. To change Cache Settings limits

  • Open <TFS Server InstallDIR>\Application Tier\Web Services\web.config file

          To specify a percentage of available disk space to fill before old files are removed, add the PercentageBasedPolicy element.

              <add key="PercentageBasedPolicy" value="60" />

          To specify a fixed size in MB for the cache to reach before old files are removed, add the FixedSizeBasedPolicy element.

              <add key="FixedSizeBasedPolicy" value="500" />

          To change the amount of cache to free when removing old files, add the CacheDeletionPercent element.

              <add key="CacheDeletionPercent" value="50" />

  • Save and close the web.config file.
  • Wait for sometime (may be 2 mins) for new setting in web.config to take effect

Example


<appSettings>
        <add key="applicationDatabase" value="Data Source=dbserverhere;Initial Catalog=Tfs_Configuration;Integrated Security=True;" />
        <add key="WorkItemTrackingCacheRoot" value="C:\Windows\Temp\TFTemp" />
        <add key="traceWriter" value="false" />
        <add key="traceDirectoryName" value="%TEMP%\\TFLogFiles" />
        <add key="applicationId" value="GUID here" />
        <!-- The new cache folder location. -->
        <add key="dataDirectory" value="new cache folder" />
        <!-- The cache should fill up to 60% capacity of available disk space before old files are removed.-->
 <add key="PercentageBasedPolicy" value="60" />
        <!-- The cache should reach 500 MB before old files are removed. -->
 <add key="FixedSizeBasedPolicy" value="500" />
        <!-- To free 50% of the cache when removing old files -->
 <add key="CacheDeletionPercent" value="50" />
</appSettings>


Thinks to know

The default is CacheLimitPercent = 75%
If both CacheLimitPercent and FixedSizeBasedPolicy are set, FixedSizeBasedPolicy wins.
If CacheDeletionPercent is not set, it defaults to 20%
Default cache location:  \%programfiles%\Microsoft Team Foundation Server <Version>\Application Tier\Web Services\_tfs_data

Recommanded Workaround without affecting the server performance

1. To Rebuild the cache without changing Cache Settings limits

  • Create a temp cache folder in the drive with more free space.
  • Open Properties dialog for the new cache folder
  • On the Security tab, choose Edit --> The Permissions dialog box opens.
  • Choose Add --> The Select Users, Computers, or Groups dialog opens.
  • Add the local group TFS_APPTIER_SERVICE_WPG, and then choose OK.
  • Select the Modify check box, clear all other check boxes, and then choose OK.
  • Open <TFS Server InstallDIR>\Application Tier\Web Services\web.config file
  • Comment dataDirectory element if already exist

              <!-- <add key="dataDirectory" value="Current cache folder" /> -->

              Note: Default cache location:  <TFS Server InstallDIR>\Version Control Proxy\Web Services\VersionControlProxy\Data

  • Add a line to the appSettings section

              <add key="dataDirectory" value="temp cache folder" />

  • Save and close the web.config file.
  • Wait for sometime (may be 2 mins) for new setting in web.config to take effect
  • Delete the content in current cache folder (Note: Do not delete the current cache folder, Only the folders and files inside current cache folder should be deleted)
  • Open <TFS Server InstallDIR>\Application Tier\Web Services\web.config file
  • Comment (temp) dataDirectory element

             <!-- <add key="dataDirectory" value="temp cache folder" /> -->

  • UnComment dataDirectory element if already exist

             <add key="dataDirectory" value="Current cache folder" />

             Note: Default cache location: <TFS Server InstallDIR>\Version Control Proxy\Web Services\VersionControlProxy\Data

  • Save and close the web.config file.
  • Wait for sometime (may be 2 mins) for new setting in web.config to take effect

Tags: ,

Team Foundation Server | TFS 2010 | TFS 2012

Complete list of Web Services

by XDK 18. June 2012 13:56

SERVER

http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/AdministrationService.asmx
http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/CatalogService.asmx
http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/EventService.asmx
http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/IdentityManagementService.asmx
http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/JobService.asmx
http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/LocationService.asmx
http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/PropertyService.asmx
http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/RegistryService.asmx
http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/SecurityService.asmx
http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/TeamProjectCollectionService.asmx
http://localhost:8080/tfs/TeamFoundation/Administration/v3.0/WarehouseControlService.asmx
 
TEAM PROJECT COLLECTION

Note: if no team project collection is specified in the URL, the default collection is assumed

http://localhost:8080/tfs/DefaultCollection/Build/V1.0/BuildController.asmx
http://localhost:8080/tfs/DefaultCollection/Build/V1.0/BuildStore.asmx
http://localhost:8080/tfs/DefaultCollection/Build/V1.0/Integration.asmx
 
http://localhost:8080/tfs/DefaultCollection/Build/V2.0/BuildService.asmx
http://localhost:8080/tfs/DefaultCollection/Build/V2.0/Integration.asmx
 
http://localhost:8080/tfs/DefaultCollection/Build/V3.0/AdministrationService.asmx
http://localhost:8080/tfs/DefaultCollection/Build/V3.0/AgentReservationService.asmx
http://localhost:8080/tfs/DefaultCollection/Build/V3.0/BuildQueueService.asmx
http://localhost:8080/tfs/DefaultCollection/Build/V3.0/BuildService.asmx
http://localhost:8080/tfs/DefaultCollection/Build/V3.0/Integration.asmx
http://localhost:8080/tfs/DefaultCollection/Build/V3.0/SharedResourceService.asmx
 
http://localhost:8080/tfs/DefaultCollection/Lab/v3.0/Integration.asmx
http://localhost:8080/tfs/DefaultCollection/Lab/v3.0/LabAdminService.asmx
http://localhost:8080/tfs/DefaultCollection/Lab/v3.0/LabService.asmx
http://localhost:8080/tfs/DefaultCollection/Lab/v3.0/TestIntegrationService.asmx
http://localhost:8080/tfs/DefaultCollection/Lab/v3.0/WorkflowIntegrationService.asmx
 
http://localhost:8080/tfs/DefaultCollection/Services/v1.0/AuthorizationService.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v1.0/CommonStructureService.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v1.0/EventService.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v1.0/GroupSecurityService.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v1.0/ProcessTemplate.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v1.0/projectMaintenance.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v1.0/Registration.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v1.0/ServerStatus.asmx
 
http://localhost:8080/tfs/DefaultCollection/Services/v2.0/GroupSecurityService2.asmx
 
http://localhost:8080/tfs/DefaultCollection/Services/v3.0/AuthorizationService3.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v3.0/CommonStructureService.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v3.0/IdentityManagementService.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v3.0/JobService.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v3.0/LocationService.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v3.0/PropertyService.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v3.0/RegistryService.asmx
http://localhost:8080/tfs/DefaultCollection/Services/v3.0/SecurityService.asmx
 
http://localhost:8080/tfs/DefaultCollection/TestManagement/v1.0/TestImpactService.asmx
http://localhost:8080/tfs/DefaultCollection/TestManagement/v1.0/TestResults.asmx
 
http://localhost:8080/tfs/DefaultCollection/VersionControl/v1.0/Administration.asmx
http://localhost:8080/tfs/DefaultCollection/VersionControl/v1.0/Integration.asmx
http://localhost:8080/tfs/DefaultCollection/VersionControl/v1.0/ProxyStatistics.asmx
http://localhost:8080/tfs/DefaultCollection/VersionControl/v1.0/Repository.asmx
 
http://localhost:8080/tfs/DefaultCollection/VersionControl/v3.0/Repository.asmx
 
http://localhost:8080/tfs/DefaultCollection/WorkItemTracking/v1.0/ClientService.asmx
http://localhost:8080/tfs/DefaultCollection/WorkItemTracking/v1.0/ConfigurationSettingsService.asmx
http://localhost:8080/tfs/DefaultCollection/WorkItemTracking/v1.0/ExternalServices.asmx
http://localhost:8080/tfs/DefaultCollection/WorkItemTracking/v1.0/Integration.asmx
 
http://localhost:8080/tfs/DefaultCollection/WorkItemTracking/v3.0/ClientService.asmx

Tags: ,

Team Foundation Server

TF203028: You cannot create a branch at $/PATH1/PATH2 beacuse a branch already exists at $/PATH1

by XDK 8. June 2012 19:50

Explanation:
A delete action (from the Source Explorer) does a delete but the complete history remains including the previous branch and that is the reason you are not able to branch (without destroying that specific folder).

Soultion:
If you want to Branch again to the same location you will have to destroy the folder

Command 
tf destroy $/PATH1/PATH2 /Collection:http://tfs:8080/tfs/DefaultCollection

Tags:

Team Foundation Server

Test

by XDK 21. December 2008 13:38
[No text]

Tags: , ,

About the author

My name is Xavier Dilip Kumar Jayaraj having 13+ years of IT experience which includes solid experience and depth Knowledge in Application Life Cycle Management, Configuration Management, Implementation and Support using TFS on-premises and Azure DevOps. I have invested in gaining DevOps knowledege to expertise with Cloud Computing providers namely Microsoft Azure and Amazon Web Services in recent years. I am very positive to learn and adapt emerging technologies to client’s environment.

Disclaimer

The information provided here is based on my expreriences, troubleshooting and online/offline findings. It can be used as is on your own risk without any warranties and I impose no rights.

Quotes I Like

"Failure will never overtake me if my determination to succeed is strong enough."  - Dr. APJ. Abdul Kalam

"Always be yourself, express yourself, have faith in yourself, do not go out and look for a successful personality and duplicate it." - Bruce Lee

"Technology is just a tool. In terms of getting the kids working together and motivating them, the teacher is the most important." - Bill Gates

"Innovation distinguishes between a leader and a follower." - Steve Jobs

DevOps Tools

ALM tools:
Azure DevOps
IBM Rational
CA Agile Central-Rally
CollabNet VersionOne

Configuration tools:
• Puppet
• CHEF
• AWS OpsWorks
• Ansible

Build automation tools:
Apache Ant 
Apache Maven
Boot
Gradle
Grunt
MSBuild
Waf

Continuous Integration tools:
Bamboo
Buildbot
Hudson
TeamCity

Testing tools:
Selenium
Watir
Wapt
ApacheJMeter
QTest

Version control system tools:
Subversion
Team Foundation Server
GIT
Mercurial
Perforce

Code review tools:
Crucible
Gerrit
GitHub
Bitbucket Server

Continuous Delivery/release management tools:
XL Release
ElectricFlow
Serena Release
Octopus Deploy