Cascade Skyline - with Microsoft Logo and Project Support header - author Brian Smith

  • Brian Smith's Microsoft Project Support Blog

    Friends don't let friends delete their cache or cancel queue jobs


    Inspired by Brian Kennemer's e-mail tag line of "Friends don't let friends assign resources to summary tasks" I thought I would get back on my soapbox about the cache and queue.  I do appreciate that there are some early bugs around custom field display that require the occasional local cache deletion - and there are a couple of rare scenarios that will leave the queue in a bad way and things need canceling.  But generally many of the situations our customers run into can be resolved without recourse to either of these actions - which can both lead to DATA LOSS!

    A couple of examples from the queue:-

    Project Save from Project Professional - Getting Queued

    This means the data is flowing from the client cache to the server queue - and once it is all in the queue it will then be loaded into the Project Server database tables.  If the client goes away while this is happening (and this can be our fault as we don't handle Project closing very well) or the network goes down, or you hibernate your laptop as you race out of Starbucks, then the queue will just sit in this state.  If you cancel the queue job then the good data in the client cache will never see the light of day.  The correct approach is to identify from the queue where the save is coming from (the owner will display from the queue) and then get that person to re-connect their client and the getting queued should continue.  In some cases you will see the original save show as canceled but if you look in the ULS logs it will have a message along the lines of:-

    PWA:http://server1/PWA, SSP:SharedServices1, User:DOMAIN\username, PSI: WinProj.PreSaveProject [T:abf8f56f-e3d1-4139-9355-55ef33aa1378][U:079d778a-2a14-455a-a52e-3141b57e75ea][S:6521e25f-5c1c-41d3-a224-7a868e161c42][D:CLIENT1\ProjConf 2][J:abf8f56f-e3d1-4139-9355-55ef33aa1378][PS_AC][3] Cancelling correlation 2439f848-3966-44b7-a645-1ff7b6914f10 as it has 1 send incomplete winproj save jobs.

    which indicates the original save hadn't got very far so it cancels it from the server and starts again.  This was in fact the project that should have demonstrated this recovery at the project conference - but I didn't leave Project Professional connected to that profile for long enough (my fault - trying to present 3 hours of stuff in 75 minutes).  Another interesting tip from this queue job - CLIENT1\ProjConf 2 is the server name and the Project Server account (not user account but the "profile") used on that machine to make this queue request.

    So the queue shows something like this:-


    with the important fact that I didn't cancel anything and the save came from my client cache - and nothing was lost.

    Timesheet Update - Failed and Blocking Correlation

    This next example shows a couple of things - the sleeping state and that the retry does work.  As long as you fix the underlying problem.  The queue is all data driven and if the data stays the same then it will behave exactly the same.  (One definition of insanity is doing the same thing over and over expecting a different outcome - same thing with the queue).  If I submit a timesheet with administrative time then when the update is processed it puts a calendar exception in to my calendar for the non-working time.  If as a resource I am checked out then this update can go into a sleeping state (Waiting to be processed (Sleeping)) - and it wakes up every 2 minutes and tries again.  If I happen to get checked in in the meantime then all is good and the process completes.  If not then eventually it will fail.  The error shown in the queue even gives you a reasonable clue to why it failed (if you know the secret language - CICO = Check-in check-out):-

    Error summary/areas:
    Error details:

    <?xml version="1.0" encoding="utf-16"?>
      <array name="Array" type="System.Guid">
        <item value="079d778a-2a14-455a-a52e-3141b57e75ea">
          <error id="10101" name="CICOAlreadyCheckedOutToYou" uid="ce366c36-421b-4c47-8fa0-d68f42ba63d6" />
        <class name="Queue">
          <error id="26000" name="GeneralQueueJobFailed" uid="385171b0-3ee9-4087-b308-859cb62fea53" JobUID="702e81a6-4f0e-4faf-ab78-2ab81fe60972" ComputerName="SERVER2" GroupType="TimesheetUpdate" MessageType="UpdateTimesheetMessage" MessageId="1" Stage="" />

    To recover from this error you do not need to cancel - just fix the underlying problem, which in this case was that I had my account open in Manage Users on another IE session, and then select the job and click retry.


    This time it all works fine - even the blocked jobs can continue and other related jobs get spawned to update the reporting DB.


    So please, please, please - deleting the local cache and canceling queue jobs should be a last resort.  There is usually a better way.

    Technorati Tags: Project Server 2007

  • Brian Smith's Microsoft Project Support Blog

    Microsoft Office Project Server 2007 and SQL Server 2005 Analysis Services - Building Cubes


    Following on from my permissions piece with Project Server I will extend this logic to the service accounts and permissions to get a successful cube build.  I'll start with an explanation of what goes on when building cubes which should help any troubleshooting you do.

    When you click on Build Cube then this kicks of a sequence of events starting with the save of any new or changed data in the cube settings - such as the server or cube name.  Next a job will be placed on the Project Server queue requesting a cube build.  This job will be picked off the queue and processed by the Microsoft.Office.Project.Server.Queuing.exe process, which will spawn the ProjectServerOLAPCubeGenerator.exe process. Both of these processes will be running under the identity of the admin account of the SSP - in my last posting this is the SSPAdmin.  So this user needs to be an admin within Analysis Services so it can communicate through DSO to Analysis Services.  This permission is added through a SQL Management Studio connection to Analysis Services by right-clicking the instance name and then selecting Properties, selecting the Security tab and then adding the user (a restart of the Analysis Services service at this point will also unsure the running instance is aware of the permission change) .  This process also needs to access the repository of meta data used to define the cubes.  This repository is detailed in KB 921116 (as are some other pre-requisites for multi server environments) and is in a share on the Analysis Services server called MSOLAPRepository$.  If you have a single server then the share will not be used - instead the direct directory location of C:\Program Files\Microsoft SQL Server\MSSQL.X\OLAP\DSO9. (The X will be a number relating to the installation of analysis services).  Therefore SSPAdmin, or your equivalent service account will need read and write access to this directory - and if you are in a multi server environment then also read/write access via the share.

    The next activity in the cube building process is the Analysis Services executable - MSMDSRV.exe -  actually building the cube based on the instructions given by the ProjectServerOLAPCubeGenerator.exe process.  This executable runs under the identity of the account running the SQL Server Analysis Services (MSSQLSERVER) (or named instance) service.  I'll refer to this account as ASAdmin  So this account needs to be able to read the reporting database of the Project Server instance, which is in effect the staging tables for the cubes.  Adding a login to SQL Server for ASAdmin with datareader role on ProjectServer_Reporting (or whatever reporting database name you are using) achieves this.  That should be all you need to get a cube building.

    So basically the SSPAdmin needs to be an admin in Analysis Services with read/write access to the repository.  ASAdmin needs datareader access to the reporting database.

    Also remember - when building a cube your application server is talking to/from your SQL Server Analysis Services server - when viewing or building views in Project Web Access your client PC is talking directly to your Analysis Services server (and each client needs the ASOLEDB 9.0 components).  Make sure any firewalls allow for this traffic.

    The default instance of Analysis Services will normally be listening on port 2383.  If you have named instances then the SQL Browser service will need to be running on the server to tell give clients a port for the named instance.  The SQL Browser is normally on port 2382.

    Named instances of Analysis Services will have other dynamically allocated ports. These can be discovered by looking in the configuration file for SQL Server Browser.  Open the msmdredir.ini file located at %Program files%\Microsoft SQL Server\90\Shared\ASConfig and look at the <Instances> section in it.  On 64 bit machines this may be in the Program Files (x86) directory.
    Here is an example:-


    and would mean your AS2005 instance is listening on port 1259.

    For my next post, rather than cluttering this one, I will show a variety of the errors from both ULS logs and Event logs that can appear if the above settings are not in place.

    Technorati Tags:

  • Brian Smith's Microsoft Project Support Blog

    Project Server 2010: Restoring or Migrating PWA Instances


    Just a quick posting on this topic pointing out a few of the changes between 2007 and 2010.  We have some documents already up on TechNet – under the Operations section at, but thought this would be a useful posting to make clear what you can and cannot do.

    In 2007 you could restore your 4 Project Server databases, then point your provision job at these 4 and you’d have a new PWA instance using those DBs.  If you wanted your workspaces too then you’d need to copy the sites or if you’d had the forethought to use a different web application for sites then it could be even easier.

    In 2010 we introduce the 5 dB restore –so you can now restore your Content database containing your PWA site (and potentially all your Project sites (workspaces,in 2007 speak), and your 4 Project Server databases, attach the Content DB to a web application and then you can provision and it will use this PWA site and the databases – rather than complaining that the /PWA site already exists – which was the case in 2007.  So this is excellent – and makes it much easier to move a complete copy of the instance around. 

    However, there are some gotchas:

    You cannot change the name of the site - but you could restore to a different web application (port) to avoid a clash if you needed to pull /PWA from one server to another server where /PWA already existed

    If you change domains you might have some unexpected results – This is due to differences in accounts in different domains, and will be even more unusual if you happen to use a different farm admin from the Project admin (which would be best practice, but in a dev/test/support scenario might not be the case.  The issue here is that attaching the content DB will add the farm admin as the site administrator, but will not add the Project admin when you provision the site.  So you have a great Catch 22. Once you provision the PWA instance the Project admin will get an access denied on /PWA as he has no rights to the site.  Farm Admin will get Access Denied (or might be unexpected error) as he is not a project server user.  Simple solution is to navigate to http://servername/pwa/-layouts/user.aspx as the Farm Admin and then give the Project admin rights.  Once you can connect as Project Admin then you can update users credentials as necessary.

    4 DB restores will NOT work – it looks like it has worked, but if you try to drill in to a project you will see a message “Unable to open Project, no valid Project Detail Page could be found for the project.”  The Project Detail Pages (PDPs) are stored in the Content DB – if you don’t; restore the Content DB then you don’t have them and cannot get to existing Projects through Project Center.  You can however still access via Project Professional, so in some support or disaster recovery scenarios this might be good enough – just to get access to projects while the full recovery happens somewhere else.

    You may need to use the WSS site re-linker tool – now built in to Server Settings in PWA as “Bulk Update Project Sites”.  If you have changed URL die to a different port then re-linking should get your sites in order. In upgrade scenarios the “Previous Site Path” Web application might show as a GUID in the drop down – however it still works and will re-link the sites.

    Cannot attach Content DB via the Central Administration UI – This is handled with very good error messages and will tell you to use stsadm if it needs to upgrade the content database due to differences of versions.  You could also use the PowerShell command – mount-SPContentDatabase. The correct syntax of the stsadm command is:

    stsadm –o addcontentdb –url “http;//servername:port/ –databasename Content_DB_Name

    Partial Restores using Full Farm Backup are not supported.  From the UI it looks as though you should be able to select just a PWA instance and backup stuff and then restore from this backup to another farm.  This isn’t supported.  it will only work when restoring to the same farm and the same named /PWA site.  I guess it could be used as a means of restoring the required databases, but you would still need to provision a site on the target server against the databases to get anything to work.

    I am sure we will find more gotchas as we go along, and perhaps even some workarounds to recover from certain issues – but that’s all for now.  Let me know of anything you feel should be added.  I will probably do a more “step by step” posting with a few more details – but the TechNet articles cover those kind of details pretty well.

    Technorati Tags: ,
  • Brian Smith's Microsoft Project Support Blog

    Waiting for Resources? - What happens when you provision a new Project Web Access site


    One problem I have seen a few times is the Project Web Access site provisioning running into issues.  If it fails completely then the error messages are pretty good - and you can generally resolve the issue and re-try and everything will be good.  However, what do you do when it just sits on "Waiting for Resources" and nothing happens?  The quick answer is that this relies on the SharePoint Timer Service and a couple of Shared Service Provider services that can be viewed through Timer Job Definitions (Shared Services Timer Job and Project Server Synchronizing Job for 'SharedServices1' - or whatever yours is called).  If these are not running then you will be "Waiting for resources" for a very long time!  Also there could be multiple versions of the timer jobs if you have multiple SSPs so it can get confusing, particularly as the first one does not differentiate by name.  (Clue - the JobId in the URL for the job is the Id of the timer job row in the Objects table in SharePoint_Config database, and the Properties column from this row will lead you to the Guid of the TargetSharedResourceProvider - which will be the Id of the Shared Services Provider also in the same table.)

    So to dig a little deeper so you can understand where it might be stuck I'll explain what is going on in the background which hopefully will help you find what is stopping it from working.

    So, step 1 - you have been on the Create a Project Web Access Site page (CreatePWA.aspx) and entered all the details, and it goes back to the Manage Project Web Access Sites (ManagePWA.aspx) page and just sits there.  At that point a row has been added to the MIPScheduledJob table in the SharedService1_DB (your database name may vary - this is the default).  This is a pre-synchronizing job for the site, and is added to the database by the account running the Shared Services Provider application pool.

    Step 2.  The Shared Service Timer Job picks up the row from this database table and adds a row to the SharePoint_Config database Objects table.  In the properties field of this table is some XML describing the site to be built, database names etc.  This timer job will run as the account of the farm administrator (i.e. the account running the OWSTIMER service)

    Step 3.  The Project Server Synchronizing Job for 'SharedServices1' sees this row and actions it by creating the site, creating the database and then configuring the instance of PWA.  If everything is working you see the status change on the ManagePWA page as these different stages are processed, and finally it will say Provisioned!  Again, this timer service runs as the farm administrator.

    Waiting for resources will be seen until the early stages of step 3.

    So check all your services are running and your timer jobs are present and enabled and all should be good.  One other workaround that generally gets things moving again is to create  a new Shared Services Provider - which will then create new timer jobs and overcome any underlying issues.  The web applications can then be associated with the new SSP, the new SSP can be made the default if you are not using the old one for anything else, and the old one could be deleted.

    I mention the databases here on the condition that you can look - but don't touch! 

    Technorati Tags: Project Server 2007

  • Brian Smith's Microsoft Project Support Blog

    How to tell which Cumulative Update, Hotfix or Service Pack version of Project Server 2010 and Project 2010 you are running


    I’ll get this information into a KB article too, and I’ll also try and keep this posting up to date as we release each cumulative update or service pack for Project Server 2010 and Project 2010.  If you are not reading this at then you may be reading out of date information!

    The version can be different depending where you look, so I will tabulate the version you will see in Control Panel, Programs and Features (binary version) or on the individual binaries – which is also listed in Central Administration under Upgrade and Migration, Check Product and Patch Installation Status – and also the version you will see in the databases.  I’ll mention too various other components that might be of interest.  I have listed just the Project Server KB for the CU – but the DB Version noted for SharePoint assumes that either a SharePoint Server or Server rollup has also been installed.

    As a reminder to get the version from the database there is a table in each SharePoint DB, and each Project Server DB called Versions so a query such as the following will return the current version, which will be the highest Version next to the NULL GUID. 


    SELECT * FROM Versions

    WHERE VersionId ='00000000-0000-0000-0000-000000000000'

    Project Server 2010

    Release Binary Version DB Version KB
    Initial Release 14.0.4763.1000 Project - 14.0.4750.1000
    SharePoint - 14.0.4762.1000
    June 2010 CU 14.0.5114.5003 – See KB for individual binary versions – KB will show in Installed Updates Project - 14.0.5114.5000
    SharePoint - 14.0.5114.5000
    KB 2075990
    August 2010 CU 14.0.5123.5000
    See KB for individual binary versions – KB will show in Installed Updates
    Project - 14.0.5114.5000 (no change from June)
    SharePoint – 14.0.5123.5000
    KB 2276341
     October 2010 CU  14.0.5126.5003 Re-released - See KB for individual binary versions – KB will show in Installed Updates Project - 14.0.5114.5000 (still no change from June)
    SharePoint – 14.0.5128.5000
     KB 2394322
     December 2010 CU  14.0.5130.5000  See KB for individual binary versions.  KB will show in installed updates

     Project - 14.0.5130.500

     SharePoint 14.0.5130.5002

     KB 2459258

    February 2011 CU

    See KB for individual binary versions.  KB will show in installed updates

    Project – 14.0.5135.5000

    SharePoint -

    KB 2475879

    April 2011 CU

    See KB for individual binary versions.  KB will show in installed updates

    Project – 14.0.5137.5000

    SharePoint -

    KB 2512801

    June 2011 CU

    See KB for individual binary versions.  KB will show in installed updates

    Project – 14.0.6105.5000

    SharePoint -

    KB 2536600

    If you load Service Pack 1 for Project Server 2010 then you will see Versions of 14.0.6027.1000 for Project and 14.0.6029.1000 for SharePoint.  If you loaded June CU at the same time and did not run the SharePoint Configuration Wizard between loading the SP and the CU then you will just see the latest - the 6105.5000 and 6106.5002 from the table above.

    Project 2010

    Details from Control Panel, Programs and Features, and also the Backstage (File, Help tab), both the main version displayed, and the additional version information.

    Release Binary Version KB
    Initial Release Control Panel - 14.0.4763.1000
    BackStage – 14.0.4760.1000
    Under Additional Versions and Copyright Information – Microsoft Project 2010 (14.0.4751.1000) MSO(14.0.4760.1000)
    MSO may be different depending on other Office KBs installed
    June 2010 CU KB 2075992 will show in installed updates
    BackStage – 14.0.4760.1000
    Under Additional Versions and Copyright Information – Microsoft Project 2010 (14.0.5112.5000) MSO(14.0.4760.1000)
    MSO may be different depending on other Office KBs installed
    KB 2075992
    August 2010 CU NA – No client release for August.  MSO may change if other Office updates loaded NA
     October 2010 CU

     KB 2413663 will show in installed updates.  Backstage 14.0.5128.5000.  Under Additional Versions and Copyright Information – Microsoft Project 2010 (14.0.5126.5000) MSO(14.0.5128.5000)
    MSO may be different depending on other Office KBs installed


     KB 2413663
     December 2010 CU  KB 2466263 will show in installed updates.  Backstage (File, Help) 14.0.5128.5000.  Under Additional Versions and Copyright Information – Microsoft Project 2010 (14.0.5130.5000) MSO(14.0.5128.5000)
    MSO may be different depending on other Office KBs installed
     KB 2466263
    February 2011 CU KB 2496946 will show in installed updates.  Backstage (File, Help) 14.0.5128.5000.  Under Additional Versions and Copyright Information – Microsoft Project 2010 (14.0.5130.5000) MSO(14.0.5128.5000)
    MSO may be different depending on other Office KBs installed
    KB 2496946
    April 2011 CU KB 2516479 will show in installed updates.  Backstage (File, Help) 14.0.5137.5000.  Under Additional Versions and Copyright Information – Microsoft Project 2010 (14.0.5137.5000) MSO(14.0.5128.5000)
    MSO may be different depending on other Office KBs installed
    KB 2516479
    June 2011 CU KB 2536590 will show in installed updates.  Backstage (File, Help) 14.0.6023.1000.  Under Additional Versions and Copyright Information – Microsoft Project 2010 (14.0.6106.5000) MSO(14.0.6023.1000)
    MSO may be different depending on other Office KBs installed - 6023.1000 relates to SP1 in this example.
    KB 2536590

    Cumulative Update Release Posts

    June 2010 -

    August 2010 -

    October CU -

    December CU - 

    February 2011 CU -

    April 2011 CU -

    SP1 -

    June 2011 CU -

    Links to all the Cumulative Update Webcasts, and other great update links can be found at

Page 3 of 92 (458 items) 12345»