jeudi 30 octobre 2008

Sharepoint et le problème du "slow the first request"

Petit détail pénible à la longue, le parametrage initial des pools d'application SharePoint est configuré pour redémarrer quotidiennement.  Le résultat est que le premier utilisateur du jour à se connecter au Sharepoint peut avoir un temps de réponse plus ou moins long lui faisant dire : "p... ça marche pô cteu' m...!!" (si vous avez une ferme plus ou moins importante avec plein de serveurs associés c'est encore pire).

Ce problème que l'on pourrait appeler "slow the first request" est connu, et l'on peut voir ici et là différentes solutions :
Pour ma part, en dehors du fait que l'on peut éventuellement modifier la planification des pools d'application (non recommandé), j'ai choisi l'option de créer un programme associé à une tâche planifiée, chargé de s'exécuter tous les jours afin de lancer une requête web sur les serveurs.
J'en ai profité pour créer un projet sur Codeplex : http://www.codeplex.com/wsr 

++

samedi 18 octobre 2008

[Sharepoint] Impossible de supprimer une application web

Après moults modifications et triturages de Sharepoint, il peut arriver que vous finissiez par obtenir le message suivant lorsque vous souhaitez supprimer une application web :
 
Impossible de supprimer l'un des objets de l'infrastructure administrative de SharePoint, « Nom de l'application », car d'autres objets en dépendent. Mettez à jour tous ces objets dépendants pour qu'ils pointent vers des objets nuls ou d'autres objets, puis réessayez. Les objets suivants sont dépendants : 
 
Le problème étant qu'aucun objet dépendant n'est indiqué. Je vous détaille donc ici la procédure que j'ai trouvée pour remédier à ce problème en commençant par un avertissement : 

Les opérations décritent ici font intervenir des manipulations au niveau de la base de données de configuration SharePoint (SharePoint_Config), ces manipulations doivent être envisagées avec la plus grande prudence et rigueur afin de prévenir toute instabilité de la plateforme. Ces informations sont décritent ici pour information et ne sont nullement supportées par Microsoft. De plus elles n'engagent en aucune manière la responsabilité de son auteur quant à d'éventuels dysfonctionnement (paf! voilà, c'est comme de la nitro en moins liquide :))


après avoir erré dans le désert aride de l'administration centrale (plus de possibilité de suppression ou de création d'application web, pas d'erreur dans les logs...), et avec un peu de recul, je conseillerait d'emblée l'exécution de l'assistant Configuration des produits et technologies SharePoint. Pour mon cas, celui-ci a permis de faire apparaitre, dans le log application du serveur, le message suivant :

The DELETE statement conflicted with the REFERENCE constraint "FK_SiteMap_Application". The conflict occurred in database "SharePoint_Config", table "dbo.SiteMap", column 'ApplicationId'.
The statement has been terminated.

Après avoir exécuté les SQL Server Profiler sur la base SharePoint_Config j'obtiens le nom du coupable, la procédure stockée proc_dropObject avec l'Id (Guid) de l'objet concerné. J'en profite ici pour signaler que Microsoft a publié l'ensemble des spécifications des protocoles SharePoint, ce qui a permit de comprendre les tenants et la aboutissants de cette procédure stockée. Cette ouverture est tout à fait importante et ne concerne pas uniquement Sharepoint, à voir ici : Open Specifications.

Bref, une ligne orpheline existait dans la table SiteMap et empêchait donc la suppression de mon application web (dans la table Objects). J'ai donc exécuté la procédure stocké proc_dropSiteMap avec en paramètre l'Id (Guid) de mon objet. Puis, revenu dans l'administration centrale, j'ai pu procéder à la supression de mon application web sans difficultés dans "Administration centrale > Gestion des applications > Supprimer une application Web"

++

LinksList 07

.NET

SHAREPOINT