The queue is one of the new features that is taking some getting used to by our customers. It is probably time for a fresh "queue problems" posting - that will be my next post, but the following came out of a discussion with Patrick Conlan yesterday. The main job of the queue is to even out the flow of data to the database ensuring consistency of data and avoiding overload on the servers.
The queue process has some great logic built in to control the flow of data and ensure reliable data consistency - such as not pushing data into the reporting database while a cube build is under way, and not allowing a check-in if a save is incomplete. There is also some optimization to avoid doing the same job more than once. You may have seen "skipped for optimization" against some jobs. These are jobs that do not have their own payload (unlike Save from Professional where the project changes are part of the message in the queue) but are really just instructions to do something. An example would be a publish - which has no payload of data but is just an instruction to take what is in the draft db for a particular project and push it into the published db (in very simple terms). Obviously if there are several publish requests for the same project and no intermediate saves then you only need to do this job once - so you can skip all other occurrences.
But beyond this (again in simple terms) it is really first come first served.
You need to consider this if you are developing an application that may push data into the Project Server queues. If you submit thousands of jobs to the queue that may take a while to process then anyone doing normal routine stuff will be in the queue behind you and therefore delayed. A better approach (assuming your stuff isn't time critical) is to push a few jobs in to the queue at a time and check for their progress. Once these have finished perhaps pause for a bit to allow other jobs some time then push in some more. In this way the normal project saves, check-ins etc will not be right at the back of the queue but will get a chance to join a short queue - much like the express checkouts at the supermarkets. A good rule of thumb might be pushing in as many jobs as you have threads running - so 4 items or less in a default system.
Technorati Tags: Project Server 2007
I had a recent question concerning an apparent difference between the % complete showing on the Project Center view for a task/project and the % complete showing on My Tasks. If you have more than one assignment and many tasks it can be difficult to reconcile the task status to the overall project. But in this case the customer had one task, one assignment so why the difference? If the project proceeds to plan then there wouldn't be a difference, but if the work performed is different from plan then you can see different values here. The reason is that the Project Center is showing % Complete - which is based on duration, and My Tasks is showing % Work Complete, which is based on work.
An example will help. Assume a 10 day task with 8 hours work per day - 80 hours. If at the end of the first day the resource has completed 8 hours work then both % complete and % work complete are 10% (1 day out of 10 for duration and 8 hours work out of 80 for work). If however the resource only completes 7.5 hours of work we see a difference. Project will assume that this is all the work being carried out on day 1 so will need to extend the duration by half an hour (0.0625 days). So the % complete is now 1 day out of 10.06 days (9.94% - displayed as 10% in Project Center) and the % work complete is 7.5 hours out of 80 hours (9.375% - displayed as 9% in My Tasks).
You can of course always add the % work complete field to a project center view if you want to see this figure.
The other % complete column, Physical % Complete, can be manually entered at the task level and can be used to drive the earned value calculations. This is used when the other values may not accurately reflect the real progress made in completing the task.
If you haven't already seen the announcement on Christophe's blog take a look at the new connector for Visual Studio TFS to Project Server 2007! See http://www.codeplex.com/pstfsconnector/Release/ProjectReleases.aspx?ReleaseId=4887 for further details.
The Visual Studio Team Foundation Server - Project Server 2007 Connector is designed to integrate the project management capabilities of TFS with Project Server 2007. It's been developed by the Visual Studio Team System Rangers in response to significant customer demand for a connector solution. Future versions of Team System will have native integration with Project Server, in the meantime this Connector solution is the best way to integrate the two Microsoft products. This solution builds on the previous PS2003 VSTS Connector, published on GotDotNet. This solution is intended to provide guidance, provided as source code that can be used "as is," extended, or modified.
Microsoft® Office Project Server 2007 and Microsoft Visual Studio® 2005 Team Foundation Server (TFS) are two powerful applications that are each used in different ways for management of software development projects. Up-to-date project information requires a seamless integration between the development environment and the project management tool.
Managing projects, resources, and related information for an entire enterprise requires a holistic view and integration of project management data with the software development lifecycle. The Enterprise Project Management (EPM) solution with Microsoft Office Project Server 2007 can help organizations effectively manage and coordinate people, projects, and processes. The Microsoft EPM solution provides tools for strong coordination and standardization between projects and project managers, centralized resource management, and high-level reporting on projects and resources. Through familiar tools and ease of integration with a broad range of programs in the Microsoft Office System, the EPM solution promotes broad participation for greater accuracy, accountability, and acceptance.
Visual Studio Team Foundation Server (TFS) provides a solution for software development teams that integrates designing, developing, testing, and managing a project. TFS integrates with Microsoft Office Project Standard 2007 and Microsoft Office Project Professional 2007 for desktop use and allows project managers to plan and manage projects on a local computer. However, because there is no integration with Project Server, the project data for each team is available only in a stand-alone plan. There is no simple way to aggregate project data across multiple projects.
The Connector synchronizes Project, Resource and Task data between the two systems. Project Managers and Resource Managers continue to work in the EPM environment while the development team works in the development environment, i.e. TFS, and data seamlessly flows between the two systems. Updates to work items in TFS are automatically applied to the corresponding assignments and tasks in Project Server and vice versa. Project Managers have complete control over the inflow of the actuals into the project plan. In addition, resource management functions for all development projects, like managing time and utilization for resources working across multiple projects, team staffing etc. can be performed in Project Server. Lastly, portfolio and program level reports can easily be generated for projects being executed in TFS and managed in Project Server.
The session list for the Project 2007 Conference has been posted to the http://www.msprojectconference.com site. Go to http://www.msprojectconference.com/tracks.htm to see the details.
Technorati Tags: Microsoft, Project Server, Project Server 2007, Project Conference
A couple more cube build error messages I have seen recently. The first is related to a time out with Analysis Services 2005 and the clue is that failure will be just over an hour into the build (assuming the timeout is still the default 3600 seconds). The error is:-
The first part of the error message will be localized if you are using a MUI - the second will not.
To resolve the issue set the advanced property ExternalCommandTimeout to a value that will allow the building of the cube. The default is 3600 (seconds) which is one hour. Increasing to 36000 will be ten hours. The value could be increased further or reduced depending if the cube builds within this modified time.
To change the value of the timeout property go to Management Studio for SQL Server 2005 and connect to Analysis Services. Right click the server name in the left pane and select Properties. Check the option to Show Advanced (All) Properties then scroll down to ExternalCommandTimeout. Change the value in the Value column then click OK. A restart is not required.
Another workaround would be to reduce the complexity of the cube build by either limiting dates or removing some or all added dimensions. This workaround is unlikely to be a workable answer for most customers.
The fact that a restart of the service is not required leads me to the second error message, which can appear if you do restart and then immediately try another cube build:-
There may well be other scenarios that give the same error, but for the scenario where you have just restarted the server then just try the build again and all will work.