miércoles, 25 de mayo de 2011

El servicio de sincronización de perfiles de usuario de SharePoint 2010 no se inicia

Quizá uno de los puntos más conflictivos en la instalación de SharePoint 2010 sea la configuración del servicio de sincronización de perfiles de usuario. Son muchas las causas que pueden provocar que el servicio no se inicie o no acabe de funcionar correctamente. En su mayoría las causas acaban siendo el no seguir adecuadamente los pasos de la guía de instalación. No obstante, nunca dejará de sorprenderme el hecho que, aún siguiendo los pasos al pie de la letra, siempre acaba habiendo un nuevo obstáculo en el camino.

Hoy, en una instalación que tengo entre manos, me encontré con que el servicio estaba parado y no había manera humana de iniciarlo. Al revisar los logs me encontré con esta perlita:

The Execute method of job definition
Microsoft.Office.Server.Administration.ProfileSynchronizationSetupJob
(ID b542c13b-af6a-41ed-a810-04a7405c536b) threw an exception. More
information is included below.

An update conflict has occurred, and you must re-try this action. The
object UserProfileApplication Name=User Profile Service Application
was updated by FARM\user, in the OWSTIMER (4548) process, on
machine SP.  View the tracing log for more information about the
conflict.

Tras verificar unas cuantas veces que había seguido todos los pasos al pie de la letra empecé a buscar la causa del error que estaba recibiendo. Al parecer esto ocurre si el contenido de la caché del sistema de archivos en los servidores frontales de la granja de SharePoint es más nuevo que los contenidos de la base de datos de contenidos. Pero, ¿cómo lo soluciono?

La solución es más simple de lo que parece. Sólo es necesario seguir los pasos que Microsoft indica en este artículo de su KB.

  1. Parar el servicio Windows SharePoint Services Timer
  2. Navegar a la carpeta donde Windows Server 2008 guarda la caché. En 2008 lo encontraréis en %ProgramData%\Microsoft\SharePoint\Config.
  3. Encontraréis ahí dos carpetas con un GUID como nombre. Una de ellas contiene un montón de ficheros .XML y un fichero CACHE.INI. Entrar en la carpeta que contiene el fichero CACHE.INI.
  4. Hacer una copia de seguridad del fichero CACHE.INI
  5. Eliminar todos los ficheros .XML de la carpeta
  6. Borrar todo el contenido del fichero CACHE.INI, escribir un 1 y guardar el fichero
  7. Reiniciar el servicio Windows SharePoint Services Timer

Probar de nuevo a iniciar el servicio de sincronización de perfiles de usuario y debería funcionar correctamente.