Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Blog Technique de Romelard Fabrice

Les dernières Actualités de Romelard Fabrice (Alias fabrice69 ou F___) principalement autour des technologies Microsoft

Actualités

  • Toutes les actualités et informations sur les technologies Microsoft principalement autour de .NET et SQL Server

Archives

TFS 2013: Comment fixer un serveur devenu totalement inutilisable

Pour des raisons inconnues ou mal connues, le serveur TFS 2013 a décidé de devenir inutilisable durant tout le week-end. Sans doutes pour passer aussi un week-end paisible.

Malgré tout, après des heures de recherche, plusieurs solutions ont permis de fixer la situation, dont une qui ressemble à la solution ultime.


Fixation des erreurs de sécurités provenant des migrations

Les bases TFS proviennet d’anciennes solutions qui ont été migrées de TFS 2005 et TFS 2010, les articles sur ce point:

Sur le serveur TFS depuis cette migration, des erreurs se trouvaient dans l’Event Viewer du type:

Event ID 3300

TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 07.09.2015 08:27:12
Machine: XXXXXXX
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v4.0.30319
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 21776
  Thread Id: 13636
  Account name: EAME\svc_tfs

Detailed Message: TF30065: An unhandled exception occurred.
Exception Message: Operation is not valid due to the current state of the object. (type InvalidOperationException)
Exception Stack Trace:    at Microsoft.TeamFoundation.Framework.Server.TeamFoundationRequestContext.ValidateRequestContext(Boolean throwOnError)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationRequestContext.To(TeamFoundationServiceHost targetHost)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationRequestContext.To(TeamFoundationHostType hostType)
   at Microsoft.TeamFoundation.Warehouse.LockResources..ctor(TeamFoundationRequestContext requestContext)
   at Microsoft.TeamFoundation.Warehouse.WarehouseExecutionContext..ctor(TeamFoundationRequestContext requestContext)
   at Microsoft.TeamFoundation.Warehouse.WarehouseSyncJobExtension`1.CheckSchemaLockQueue(Object source)

TF53010: The following error has occurred in a Team Foundation component or extension:
Date (UTC): 07.09.2015 08:27:11
Machine: XXXXXX
Application Domain: TfsJobAgent.exe
Assembly: Microsoft.TeamFoundation.Framework.Server, Version=12.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a; v4.0.30319
Service Host:
Process Details:
  Process Name: TFSJobAgent
  Process Id: 21776
  Thread Id: 19580
  Account name: EAME\svc_tfs

Detailed Message: TF221033: Job failed to acquire a lock using lock mode Shared, resource DataSync and timeout 0.
Exception Message: Operation is not valid due to the current state of the object. (type InvalidOperationException)
Exception Stack Trace:    at Microsoft.TeamFoundation.Framework.Server.TeamFoundationRequestContext.ValidateRequestContext(Boolean throwOnError)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationRequestContext.To(TeamFoundationServiceHost targetHost)
   at Microsoft.TeamFoundation.Framework.Server.TeamFoundationRequestContext.To(TeamFoundationHostType hostType)
   at Microsoft.TeamFoundation.Warehouse.WarehouseExecutionContext.AcquireLock(TeamFoundationRequestContext requestContext, TeamFoundationLockMode lockMode, String resource, Int32 waitSeconds)
   at Microsoft.TeamFoundation.Warehouse.WarehouseExecutionContext.QueryLockMode(String resource)
   at Microsoft.TeamFoundation.Warehouse.WarehouseExecutionContext.QueryLockMode(WarehouseLocks queryLocks)
   at Microsoft.TeamFoundation.Warehouse.WarehouseExecutionContext.ContinueDataChange()

On trouve alors la solution ici pour corriger la configuration des accès sur les solutions TFS, avec une commande qu’il faut utiliser sur chaque base TFS:

La commande en question:

C:\Program Files\Microsoft Team Foundation Server 12.0\tools\tfssecurity.exe /a+ Server FrameworkGlobalSecurity GenericRead "[DefaultCollection]\Project Collection Valid Users" ALLOW /collection:http://abc:8080/tfs/DefaultCollection

image


Service “Net.Tcp Listener Adapter” à ne pas stopper

Nous avons constaté dans le message précédant l’impact d’un service de communication pour la configuration de SharePoint 2013 et Office Web Apps:

Tout ceci fonctionne parfaitement, mais il convient de ne pas stopper le service “Net.Tcp Listener Adapter”, car celui-ci est utilisé par le moteur de recherche de SharePoint avec la configuration des noeuds, comme on peut le voir dans le répertoire de configuration de “Nodes”:

  • [SP DATA Folder]\Office Server\Applications\Search\Nodes\[XXXXX]\AdminComponent1\Configuration\Local\Node.ini

Qui est de la forme suivante:

; This file contains node properties set by the host controller.
; Manually modifying this file may cause problems for the host controller
; in contacting the node for monitoring. All such modifications would be
; overwritten when the host controller reconfigures the node.

[HostController]
InstallRoot=[SP DATA Folder]\Office Server\Applications\Search\Repository\
Managed.Repository.RootPath=[SP DATA Folder]\Office Server\Applications\Search\Repository\
Managed.Node.AssemblyPath=C:\Program Files\Windows SharePoint Services\15.0\Search\Native
Managed.Node.DynamicAssemblyPath=
Managed.Node.NativeLibraryPath=C:\Program Files\Windows SharePoint Services\15.0\Search\Native
Managed.Node.SchemaPath=
Managed.DotNetRemoting.Secure=True
Managed.WcfRemoting.SecurityMode=Transport
Managed.WcfManagement.SecurityMode=Transport
Managed.Host.Name.c776cbf842b84e46be8e8ed0acea9688=XXXXXX
Managed.Host.Uri.c776cbf842b84e46be8e8ed0acea9688=net.tcp://XXXXXX/ceres/hostcontroller/nettcp
Managed.Host.Name.535fa9d5a9f64996b3717344816fb29e=xxxyyyyyyy
Managed.Host.Uri.535fa9d5a9f64996b3717344816fb29e=net.tcp://xxxxxyyyyyy/ceres/hostcontroller/nettcp
Managed.Host.Name.59ad81e448e5497ab9eca1100c32f050=sqlserver
Managed.Host.Uri.59ad81e448e5497ab9eca1100c32f050=net.tcp://sqlserver/ceres/hostcontroller/nettcp
Managed.Host.Name=XXXXXX
Managed.HostController.ServiceUri=net.tcp://XXXXXX/ceres/hostcontroller/nettcp
Managed.HostController.PrimaryServiceUri=net.tcp://XXXXXX/ceres/hostcontroller/nettcp

Ainsi, si le service est stoppé, le moteur de recherche de SharePoint 2013 ne peut plus du tout travailler, et va tourner en boucle.

Du coup, je vous conseille de laisser les 3 services toujours démarrés:

image


Forcer le refresh de TFS

Comme toute application serveur, TFS gère un ensemble de fichier de Cache qui sont à plusieurs niveaux, il est donc parfois utile de forcer le refresh de tous ces niveaux, dont celui vraiment interne à TFS.

Solution trouvée ici:

Ainsi, les répertoires à vider sont:

  • C:\ProgramData\Microsoft\Team Foundation\Web Access\Cache_vxxxxxxxx\*
  • C:\Users\[svcAccount]\AppData\Local\Microsoft\Team Foundation\[XXX]\Cache\*
  • C:\Windows\Temp\*
  • C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files\*
  • C:\Windows\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\*
  • C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\*
  • C:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\*

Une fois ces répertoires vidés, il faut recharger TFS en exécutant (en mode administrateur) la commande MSDOS:

  • IISRESET

Les moteurs Web vont tous se recharger et le fonctionnement redeviendra normal, si tout se passe bien.


Conclusion

Les produits Microsoft sont de plus en plus imbriqués et une modification sur un des composants peut rapidement entrainer des soucis sur les autres. Chaque composant devenant la brique de base d’un autre module.

Romelard Fabrice [MBA Risk Management]

Technorati Tags: ,,
Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: lundi 7 septembre 2015 10:53 par ROMELARD Fabrice

Commentaires

ROMELARD Fabrice a dit :

Pour la dernière solution, il est préférable d'encadrer le nettoyage des caches par les commandes suivantes:

-> "TFSServiceControl quiesce" (pour stopper les services)

-> Nettoyage des caches ....

-> "TFSServiceControl unquiesce"  (pour redemarrer les services)

Solution fournie par Michel Perfetti (http://www.buildmeimfamous.net/)

Romelard Fabrice [MBA Risk Management]

# septembre 7, 2015 16:04
Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- Reprise des articles Codes-Sources de 2011 à 2013 par Blog de Jérémy Jeanson le 08-21-2018, 16:08

- Office 365: Modifier les jeux de couleur dans les Thèmes des pages classiques de SharePoint Online par Blog Technique de Romelard Fabrice le 08-08-2018, 17:27

- Office 365: Modifier les jeux de couleur dans les Thèmes des pages modernes de SharePoint Online par Blog Technique de Romelard Fabrice le 07-04-2018, 13:26

- Office 365: Script PowerShell pour fixer le Quota Warning de toutes les collections d’un tenant par Blog Technique de Romelard Fabrice le 07-03-2018, 14:16

- MVP Award 2018-2019 par Blog de Jérémy Jeanson le 07-02-2018, 20:39

- Reprise des articles de 2014 à aujourd’hui par Blog de Jérémy Jeanson le 06-20-2018, 13:00

- Office 365: Comment créer un sous-plan dans Office 365 Planner par Blog Technique de Romelard Fabrice le 06-14-2018, 17:19

- Office 365: Script PowerShell de création de sous-sites basés sur CSOM ou PnP par Blog Technique de Romelard Fabrice le 06-12-2018, 14:58

- Office 365: Comment exporter tous les comptes Azure Active Directory ayant une license via PowerShell par Blog Technique de Romelard Fabrice le 05-17-2018, 13:46

- PowerShell: Comment avoir le Country Name depuis un Country Code par Blog Technique de Romelard Fabrice le 05-17-2018, 13:20