View the ULS logs for queue job entries
You can use your server's Unified Logging Service (ULS) logs to troubleshoot queue issues in Microsoft Office Project Server 2007. The queue entry information in ULS logs is especially useful in conjunction with the information in the Manage Queue page in Project Web Access, or with Windows Server Event Viewer.
This article describes:
How to configure ULS log-file settings
How to configure Microsoft Office Excel 2007 to view ULS log files
How to search for specific queue jobs in the ULS logs
Types of queue job entries in the ULS logs
Queue entry parameters
Best practices for troubleshooting queue issues
Configuring ULS log file settings
You can configure the ULS log file settings by using the SharePoint Central Administration Web site. On this page, you can:
Specify a default location to store log files.
Specify the maximum number of log files to be stored on the server.
Specify the duration of time (in minutes) that each log file covers.
The log file settings apply to all servers in the farm.
Configure ULS log file settings
In Central Administration, click Operations. In the Logging and Reporting section, click Diagnostic logging.
On the Diagnostic logging page, in the Trace Log section, verify the location specified in the Path field. The default location is C:\Program Files\Common Files\Microsoft Shared\Web server extensions\12\LOGS. To change the location, type a new one in the Path field.
In the Number of log files field, specify the maximum number of log files that are saved to each server in the farm. The default value is 96.
In the Number of minutes to use a log file field, enter the duration (in minutes) you want for each log file. The default value is 30.
New log files will be named in the following format: servername-year/month/day-time.log
For example, a log file created on June 8, 2008 at 1:20PM on a server named "Contoso" would be named contoso-20080608-1320.log. If the Number of minutes to use a log file field is set to 30, you would subsequently see the following files created: contoso-20080608-1320.log contoso-20080608-1350.log, contoso-20080608-1420.log, contoso-20080608-1450.log, and so on.
Configuring Office Excel 2007 to view the ULS log files
Log files can easily be viewed in most text editors and through Microsoft Office Excel. Excel allows log files to be sorted by column and also provides better readability (especially for rows that contain long strings of data).
Configure Office Excel 2007 to view trace log files
In Office Excel 2007, click the Office button, and then click Open.
In the Open dialog box, browse to the location of your log files.
In the Files of Types list (located to the right of the File name field), select All Files (*.*) so that you are able to see the log files.
To arrange the file list by date, right-click an open area in the file list, click Sort By, and then click Date modified.
From the file list, select the log file you want to view.
After the log file appears, on the Home tab, click Sort & Filter, and then click Filter. This allows you to filter all rows by specific criteria. For example, if you wanted to view only Project Server entries, you would click the Filter menu in the Area column, and then clear all other options except Project Server.
Select the Message column. On the Home tab, click Format, and then click Format Cells. On the Format Cells page, click Alignment, and in the Text Control section select Wrap text. Click OK. Message data can be very lengthy, so configuring the column to wrap text makes the data easier to view.
Searching for specific queue jobs
To look for a specific entry in a log file, you must use the Manage Queue Jobs page in Project Web Access in conjunction with the ULS logs.
Each queue job has a Job Group ID. You use this data to search a log file. To begin with, you must add the JobGroup ID column to your Job Grid. Once you have done that, you can then check for a particular value in the ULS log file.
Add the Job Group ID column to the Job Grid
On the Server Settings page in Project Web Access, in the Queue section, click Manage Queue.
On the Manage Queue Jobs page, click Columns.
In the Available Columns list, select JobGroup ID. Click Add to move JobGroup ID to the Selected Columns list.
In the Job Grid toolbar, click Refresh Status and verify that the column has been added.
After adding the JobGroup ID column, you can check job queue entries in the ULS logs against the corresponding Job Group ID value that you see for the job on the Manage Queue Jobs page. For example, in the Job Grid in the Manage Queue Jobs page, let's say that you have noticed that a project publish job failed at 1:22PM on June 8, 2008. Based on the time of the failure, you know that you can find the correct log file that contains the failure information. For example, contoso-20080608-1320.log will contain the failure information if your log file durations (the number of minutes to use a log file parameter) is set to 30 minutes, because the range is from 1:20 PM to 1:50 PM.
After opening the log file, you can search for all entries pertaining to the specific queue job by using the column filters. For example, the Correlations column may allow you to filter based on the Job Group ID. You can also narrow your search by filtering the Timestamp column (based on the time of the failure), Area column (filter for "Project Server"), or Category column (filter for "Project Server Queue").
Viewing queue entry components
When you are viewing the ULS logs for queue entries, note that they can be divided into two types of functions:
Jobs sent to the queue: The job is being sent from Project Server to the queue in order to be processed.
Jobs picked up for processing: After the job has been successfully sent to the queue, a queue worker thread attempts to process the job.
Jobs sent to the queue
When a job is sent successfully to the queue, you typically see three types of entries in the ULS log for the queue job:
A begin-message-group entry
Entries sending job-related data to the queue
An end-message-group entry
Begin-message-group entry: The initial entry in the ULS log for a queue job is a tag signifying the start of the job. It tells the queue that additional job-related data will be subsequently sent to it. The following is an example of a begin-message-group queue-job entry:
05/13/2008 11:24:09.05 w3wp.exe(0x0E38) 0x0160 ProjectServer ProjectServerQueue 8the Medium PWA:hppt://contoso/PWA, SSP:SharedService1, User:Contoso\EvaCorets, PSI: Project.QueueCreateProjectAndCheckOut [QUEUE][SENDER] ProjectQ: BeginMessageGroup(95e48e6e-71ad-4a6b-b997-86693cac4f66,41398775-d4a6-4c10-a523-4d0251d192c1,ProjectCreate,StandardPriority): JobUID: 6c2c97af-06b4-4038-8ee8-d83de92e59a9 ca5ca0b6-1dce-4d76-aefb-fec966aa8fe1
Entries sending job-related data to the queue: After the begin-message-group entry has been sent by the queue job, you might see a number of job-related entries sent to the queue. You can track the sequence of these entries through the ID parameter value. These entries can occur sequentially in the log, or they can be dispersed over a period of time, mixed among other log entries. You can use the Group UID number of the job to track entries for the job in the log file. At this point, the job is in the "getting queued" state. The following is an example of a job-related entry:
05/13/2008 11:24:09.07 w3wp.exe (0x0E38) 0x0160 ProjectServer ProjectServerQueue 8thf Medium PWA:http://contoso/PWA, SSP:SharedServices1, User:Contoso\EvaCorets, PSI: Project.QueueCreateProjectAndCheckOut [QUEUE][SENDER] ProjectQ: Send( Microsoft.Office.Project.Server.BusinessLayer.QueueMsg.ProjectAddToMessage ): ID: 1 GroupUID: 95e48e6e-71ad-4a6b-b997-86693cac4f66 ca5ca0b6-1dce-4d76-aefb-fec966aa8fe1
End-message-group entry: When all data for the queue job has been received by the queue, an end-message-group entry is sent to the queue. Until this entry has been received, the queue job is in a "getting queued" state. If the end-message-group entry is successfully received, the job transitions to a "waiting to be processed" state. The following is an example of an end-message-group entry:
05/13/2008 11:24:09.09 w3wp.exe(0x0E38) 0x0160 ProjectServer ProjectServerQueue 8the Medium PWA:hppt://contoso/PWA, SSP:SharedService1, User:Contoso\EvaCorets, PSI: Project.QueueCreateProjectAndCheckOut [QUEUE][SENDER] ProjectQ: EndMessageGroup(): GroupUID: 6c2c97af-06b4-4038-8ee8-d83de92e59a9 ca5ca0b6-1dce-4d76-aefb-fec966aa8fe1
Jobs picked up for processing
After a job has been submitted successfully to the queue, it eventually is picked up for processing by the job-worker threads. Two types of jobs are associated with this:
Starting-group entry: A starting-group entry in the ULS log signifies that a job has been picked up for processing. At this point, the status of the job will be "Processing." The following is an example of a starting-group entry:
05/13/2008 11:24:09.55 Microsoft.Office.Project.Server (0x0E9C) 0x1378 ProjectServer ProjectServerQueue 7h52 Medium PWA:http://Contoso/PWA, SSP:SharedServices1, User:Contoso\EvaCorets, PSI:[QUEUE] ProjectQ: Starting group 95e48e6e-71ad-4a6b-b997-86693cac4f66 type = ProjectCreate priority = StandardPriority 59d07fb9-158f-42b6-ac09-824d592c06c7
Group-completed-successfully entry: When a job has completed processing successfully, it is noted by a group-completed-successfully entry in the ULS log. The job has a status of "Success." The following is an example of a group-completed-successfully entry.
05/13/2008 11:24:11.52 Microsoft.Office.Project.Server (0x0E9C) 0x1378 ProjectServer ProjectServerQueue 7h5o Medium PWA:http://Contoso/PWA, SSP:SharedServices1, User:Contoso\EvaCorets, PSI:[QUEUE] ProjectQ: Group completed successfully: 95e48e6e-71ad-4a6b-b997-86693cac4f66 type = ProjectCreate 59d07fb9-158f-42b6-ac09-824d592c06c7
Queue entry parameters
The following parameters can be found in all of the various queue-job entries in the ULS logs:
Describes the Project Server instance on which the queue job is being processed. In this example, it is “http://contoso/PWA”.
Describes the Shared Services Provider for the Project Server instance on which the job occurred. In this example, it is “SharedService1”.
Describes the queue job owner. In this example, it is a Windows user named with an alias of EvaCorets.
Describes the Project Server Interface (PSI) call that is being made through the job. In this example, WinProj.PreSaveProject signifies that the PSI call is a project Save operation through Project Professional.
States that the message is being sent to the queue.
Defines the queue main threads and queue worker threads.
Defines the Queue Watcher Process.
Defines the Queue Worker Process.
Defines the Project queue (as opposed to the Timesheet queue).
Specifies that the job type is a Save from the Project client. Job type will be appended with
States the job priority. Jobs of lower priority (such as a write to the reporting database spawned through a project publish job) will be picked up for processing after higher priority jobs have been picked up. Priority will be appended with
Defines the UID for the queue job. The Job UID value corresponds to the Job ID value for queue jobs in the Manage Queue Jobs page in Project Web Access Server Settings.
For more information about queue threads and processes, see Microsoft Office Project Server 2007 Queuing System.