In SharePoint Server 2007, we often run into situations where some attributes of a user is updated in Active Directory however the changes don’t reflect in SharePoint Sites even after doing Profile Import.
Lets take an example of a user "Susan Burk" who gets married and her last name changes to Johnson so her name becomes "Susan Johnson".
Active Directory (AD) folks changes the Last Name and Display Name of Susan
SharePoint Admin does a full / incremental profile import and we see that the changes have reflected in her User Profile as well.
However, a week after Susan loges a call with IT Helpdesk stating on the company's Intranet portal, she is still listed as "Susan Burk" and it has not changed to "Susan Johnson".
SharePoint by default runs "Profile Synchronization" (PROFSYNCH) job every 1 hour and "Quick Profile Synchronization" (SWEEPSYNCH) job every 1 minute which are responsible to sync'ing any changes from Profile Store to SharePoint Sites. So, SharePoint Admin verifies these jobs are in-tact and are running on schedule for the affected web application by going to Central Admin > Timer Job Status and confirms both Profile Sync and Quick Profile Sync jobs have ran within the last hour.
So, there are quite a few things which can cause such a scenario.
Windows Server 2003 - C:\Documents and Settings\All Users\Application Data\Microsoft\SharePoint\Config\<GUID>\cache.ini
Windows Server 2008 & 2008 R2 - C:\ProgramData\Microsoft\SharePoint\Config\<GUID>\cache.ini
We know its NOT SUPPORTED to make any direct changes / modifications to SharePoint databases (http://support.microsoft.com/kb/841057)
Here are the standard troubleshooting steps for the scenarios mentioned above, running all the below steps may / may not be required in every case, so you should identify the problem and apply corrective steps accordingly -
Note: Setting ignoreisactive to '1' or 'True' will trigger all the Inactive users in the Content DB to get sync'd, which may be CPU intensive and cause a spike / transaction log growth on DB server, its important to revert it back once we are done
The actual performance impact caused by 'ignoreisactive' is determined by
Note: We are passing a NULL list (observe there is no value between quotes) as there is no way to remove a specific web application from this list. So, lets say you have added 2 web applications to exclude and just want 1 to be included back then you have to remove both and then add 1 again which you don’t wish to sync)
Now wait for ~30 to 60 mins and verify if profile sync is working (you may need to wait longer if there are lot of users in the Site Collection so that all entries are updated)
Note: If you observe that nothing of the above has worked, try the below 2 steps
Neatly structured .. really helpful for troubleshooting !! \m/ awesome :)
Perfect, thanks for the guide - helped me alot!
Just one note/correction - you wrote:
"stsadm -o deleteolddatabases 0"
you forgot the operation the correct stsadm line is:
"stsadm -o sync -deleteolddatabases 0"
Thank you Gernot. Corrected :)
cool blog..very helpfull
THANKS! this resolved the issue for us. Nice to see a start-to-finish documentation of a known issue for once.
Thanks a lot ! Profiel Sync Issue is resolved
<updated the blog for better clarity and include 1 more scenario>
I recently had a similar, but different, issue with profile synchronizations. I was unable to find anything online that helped me out with the solution, so I contacted Microsoft for help. For lack of a better place to post this information, I'll post here with the hope it will potentially help others.
Problem #1: Scheduled profile import jobs stopped running. I could manually run the import jobs, but they would not run as scheduled.
Solution #1: First a little background. I am running a multi-server farm where I have a dedicated search/central admin server, two web front ends, a SQL Reporting Services server, and a Project Server. As I was digging around in the content database for the web application that my import jobs were not working for I discovered in the dbo.TimerLock table that my project server held the timer lock on my content database. I thought that was odd...that a query server should be holding the lock, not the project server. I verified this was correct with the MS support tech. To resolve this I disabled the timer job service on the project server for about 15 minutes. Eventually the timer lock transferred to a query server and the profile imports started running as scheduled again.
Problem #2: Profile synchronization was not running between MOSS and WSS for a specific web application.
Solution #2: In trying to troubleshoot Problem #1 above, I had run the stsadm -o sync -excludewebapps command on my extranet web app. I was noticing that, even though the profile imports were running, the SharePoint profiles had a person's LDAP user name instead of their display name. I was unable to find anything online as to how to counter the excludewebapps command. I finally got the following from MS support:
1) Stsadm –o sync –listolddatabases 0
2) Stsadm –o sync –deleteolddatabases 0
3) Stsadm –o sync –synctiming m:1
4) Stsadm –o sync –sweeptiming m:1
5) Stsadm –o sync –excludewebapps “”
The last command was the one that reset the profile synchronization so all web apps were again included.
Hopefully other folks don't run into the same issues I did, but if so, hopefully this helps!
Thanks for posting the info, it may certainly be useful to some visitors!
Scenario 1 was not included as its about profile import which is different than profile sync and hence unrelated here. scenario 2 is already included in the above troubleshooting steps
Excellent blog Nishant. Thanks a lot :).
I have issues in User Profile in MOSS 2007,
Background: User Profile Import Schedule was not running as per configured Schedules (this still exists).
I manually ran the Incremental crawl which pulled the users from different ADs.
Profile Synchronization, Quick Profile Synchronization Jobs are running successfully.
Imported User profile details (changes) are not getting published to the web applications.
I am able to see the changes in SSP database in “UserProfileValue“ table.
On the other hand when I removed the user from site and added him back the changes are reflected in the web application.
Any help would highly appreciated.
Please reply for any clarifications.
Thanks in advance.
@Muralidharan: Same scenario is described in above blog. Please follow the above blog and it should help to resolve the profile sync issue.
This is incredible.. Thanks a ton !!!
Keep posting such blogs..
Nishant, this is great!
However, could you please let me know the query that you published before to find the names of the databases that has the Moving Status set as True?