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