One of the most frustrating things in Sharepoint for developers or even administrators, is implementing a new change and then nothing seems to happen. This is caused by the fact that Sharepoint implements almost all changes as jobs that run behind the scenes.
The only way to speed things up is to firstly understand what jobs are available and then finding a way to change the schedule or execute the job immediately. Unfortunately there is no way to to this in the admin console by default and therefore you will have to use the command line tool "stsadm" to do his.
In this blog I will first outline the default jobs that exist, show where you can find this information using the "Sharepoint Admin Console" and then run a command to change the job schedule.
Default timer jobs
Default timer jobs for Windows SharePoint Services 3.0
The following table lists the default timer jobs created for Windows SharePoint Services 3.0.
Timer job title | Schedule type |
CEIP Data Collection | Daily |
Change Log | Daily |
Database Statistics | Weekly |
Dead Site Delete | Daily |
Disk Quota Warning | Daily |
Immediate Alerts | Minutes |
Recycle Bin | Daily |
Usage Analysis | Daily |
Workflow | Minutes |
Workflow Auto Cleanup | Daily |
Workflow Failover | Minutes |
Default timer jobs for Office SharePoint Server 2007
The following table lists the default timer jobs created for Microsoft Office SharePoint Server 2007.
Timer job title | Schedule type |
Application Server Administration Service Timer Job | Minutes |
Application Server Timer Job | Minutes |
Bulk Workflow Task Processing | Daily |
CEIP Data Collection | Daily |
Change Log | Daily |
Child Farm Content Source Discovery | Minutes |
Database Statistics | Weekly |
Dead Site Delete | Daily |
Disk Quota Warning | Daily |
Document Conversions | Minutes |
Expiration Policy | Daily |
Hold Processing and Reporting | Daily |
Immediate Alerts | Minutes |
Indexing Schedule Manager on SQL Server | Minutes |
Information Management Policy | Daily |
Licensing Synchronizer Job | Hourly |
My Site Cleanup Job | Hourly |
Office SharePoint Server CEIP Data Collection | Daily |
Office SharePoint Usage Analytics Log Import | Daily |
Office SharePoint Usage Analytics Processing | Minutes |
Profile Synchronization | Hourly |
Quick Profile Synchronization | Minutes |
Records Center Processing | Daily |
Recycle Bin | Daily |
Scheduled Approval | Minutes |
Scheduled Page Review | Daily |
Scheduled Unpublish | Minutes |
Search and Process | Daily |
Shared Services Provider Synchronizing Job | Minutes |
Shared Services Timer Job | Minutes |
SharePoint Services Search Refresh | Minutes |
SharePoint Worker Process Group Update | One-Time |
SKU Type Synchronization Job | Hourly |
Synchronization Scheduler | Minutes |
Usage Analysis | Daily |
Variations Propagate Page Job Definition | Minutes |
Variations Propagate Site Job Definition | Minutes |
Windows SharePoint Services Watson Policy Update | One-Time |
Workflow | Minutes |
Workflow Auto Cleanup | Daily |
Workflow Failover | Minutes |
Timer jobs for Office SharePoint Server 2007 with Project Server 2007
The following table lists the timer jobs that are available for Office SharePoint Server 2007 only, if Microsoft Office Project Server 2007 is installed in the farm.
Timer job title | Schedule type |
ProjectPSISharedApplicationTimerJob | Minutes |
ServerScheduledTimerJob
Subtypes:
| Minutes |
ProjectServiceCredentialUpdateTimerJob | Minutes |
ProjectServiceCheckerTimerJob | Minutes |
Shared Services Provider timer jobs
Shared Services Provider (SSP) timer jobs are timer jobs that are created by default whenever an SSP is created. By default, SSP timer jobs are disabled, and they have to be enabled. These timer jobs are scheduled to run daily, weekly, or at any particular time.
Default SSP timer jobs
The following table contains the default timer jobs for any SSP created.
Timer job title | Description |
User Profile Full Import Job | This timer job imports all data in user profiles. |
User Profile Incremental Import Job | This timer job imports only the user profiles that are added since the last import. |
User Profile Change Job | This timer job changes the user profile. User rights can be migrated from one user to another user. This timer job is used when a user needs to be migrated, but the previous user profile remains in the Active Directory directory service. |
User Profile Change Cleanup Job | This timer job is also used to migrate user rights from one user to another user, but this timer job migrates the user rights and cleans up that user from Active Directory. This is mainly used when the name of a user is changed in Active Directory. The older user name is replaced by new user name and the older one is removed from Active Directory. |
Audience Compilation Job | This timer job checks property values in user profile and membership in distribution lists, security groups, and reporting structures to see whether they match the audience rule created. Users that match the audience rules for an audience are included in that audience and the received content is targeted to that audience. A compilation schedule can be set. |
Distribution List Import Job | This timer job is used to import the distribution list, so that it can be used among different users. |
SSP timer jobs for Office SharePoint Server 2007 with Project Server 2007
The following table lists the SSP timer jobs for Office SharePoint Server 2007 only, if Office Project Server 2007 is installed in the farm.
Timer job title | Description |
PWASSPSubmitSiteCreationTimerJob | This timer job is a one-time timer job used to submit ProjectPSISharedApplicationTimerJob, which is used for provisioning PWA instances, and MUI provisioning. |
PWASSPSubmitServerScheduledTimerJob | This timer job is a one-time timer job to submit ServerScheduledTimerJob, which is used by business objects to schedule a task. |
Viewing the Jobs using the admin Console
All the above mentioned jobs can be viewed using the "Admin web site for Sharepoint". Open up the site and navigate to the operations tab.
On this tab you will find a section called "Global Configuration". There are two options here relating to jobs. The first one is called "Job Definitions" to show you a list of the jobs used by Sharepoint.
The second option is used to view the "Status" of each of these jobs.
Unfortunately none of these two screens allow you to change anything significant about the jobs except the description. You can also disable the job using this screen. The only way to change anything as far as scheduling goes is to use the command line.
You can also view all the jobs from the command line by enumerating through the collection:
stsadm -o enumssptimerjobs -title "sspname"
Changing the Job Schedules
The "stsadm" Administrators command-line application can be used to control certain Timed Jobs functionality. Unfortunately, there are no default commands to install or start/stop Timed Jobs, but there is a command to run all Jobs immediately and commands to reschedule a number of Jobs.
stsadm -o execadmsvcjobs
When you schedule a timed job, you schedule the beginning time for the job. For example, you can schedule a job to be run daily, beginning between 3:00 AM and 5:00 AM. You always schedule jobs to begin within a time range, rather than at a specific time. This allows the SharePoint Timer service to be run at a random time in that range, so that not every server in a server farm is running the scheduled job at the same time. For example, if you set usage analysis processing to be done during the range 1:00 AM to 2:00 AM, then each front-end Web server starts processing usage analysis sometime between 3:00 and 5:00 AM.
There are also SharePoint components that use a Timed Job and can be controlled using the command-line tool. For example, the commands "setpolicyschedule", "setcontentdeploymentjobschedule", and "setsitedirectoryscanschedule" are components that support the Timed Job infrastructure. Each of the commands accepts a "-schedule" parameter (named "recurrence string" or "schedule" in the help function of stsadm) that is a free string of the form:
"[Time frame] [Interval] between [value] and [value]"
For example:
"every 10 minutes between 0 and 59"
"hourly between 0 and 59"
"daily at 21:00:00"
"weekly between Mon 02:00 and Fri 21:00:00"
"yearly at Dec 31 22:00:00"
The syntax looks like this:
stsadm -o setcontentdeploymentjobschedule -schedule "daily at 21:00:00"
Referenced Blogs:
http://technet.microsoft.com/en-us/library/cc678870(TechNet.10).aspx
http://www.codeguru.com/cpp/misc/misc/microsoftofficeoutlook/print.php/c14133