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

  • Brian Smith's Microsoft Project Support Blog

    The Microsoft Office Support Blog


    If you want to see a broader coverage of Microsoft Office support issues - along with some personal views of what working in support at Microsoft is really like then get along to the Microsoft Office Support Blog.  The scope of this blog in their own words:-

    "This blog is going to be used as a way to bring people into the world of what it is like to do products support for Microsoft Office. We will utilize the blog in a myriad of different ways. You will see posts about technical problems we are working on with customers; get information about patch Tuesday’s and all of the Microsoft Office security bulletins; get a view of how the Product Support organization is organized; hear firsthand accounts from support engineers about what they do day to day; and find out how Product Support and Product Development work together. These are just a few topics that will be covered.

    We hope that you enjoy this blog and come back to check on us regularly. Thank you."

    There is already some really useful stuff up there - on DST, deadlines for moving on from Beta 2 Technical Refresh and lots more!

    Technorati Tags: Microsoft Office

  • Brian Smith's Microsoft Project Support Blog

    My Queue is Stuck! - How to manage your queue service in Project Server 2007


    The new world of Project Server 2007 and the architectural changes are catching a few of our customers out - and I thought I'd share a few tips and tricks for keeping the queue flowing - and some tips for getting things moving again if they appear to have stopped. 

    First I will point to a great TechNet article on the Queue (*** 12/18/2014 update - try this link now ***) and as you will all have read this then my explanations will make more sense :).

    Under Server Settings in Project Web Access the Manage Queue option allows you to see what is happening in the project and timesheet queues - if you don't have admin access then the Personal Settings will give you a glimpse of your queue jobs.  The latter option may not however give you the complete picture and allow you to see what might be ahead or you.  It is like being stuck on the highway and not being able to see around the corner to where the flashing lights are... 

    So lets start with some definitions:-

    Waiting to be processed - means exactly what it says.  Once I get to the front of the queue then I am ready to go.  But there may be other active jobs ahead that will stop my job starting even if I am first in line.  The queue is clever enough that it will hold jobs back if their processing would interfere with other running jobs.  An example might be a publish job that will need to wait for a cube build to finish.

    Processing - means that I made it to the front of the queue, was allocated a thread and am working away!  One thing I have noticed is that the % complete indicator doesn't always make you think that "processing" is happening - but generally it is.  Looking in the ULS logs, event logs or at general server activity (particularly the Microsoft.Office.Project.Server.Queuing.exe process should help if you have continued doubts that processing is moving along.

    Skipped for optimization - is the queue's way of telling you that it is not going to do the same thing twice.  Some queue jobs have a payload (such as saving a project) and others are merely instructions (such as publish a project).  If several of the same instruction are in the queue, then only one needs to be actioned.  An example might be working on a project and publishing a few times during a period of time.  If the queue was busy all of these jobs might be sitting waiting for a while - and then rather than doing each in turn it just needs to do one.  It is just an instruction to publish the content of the saved project.  This would not happen with a queue job that had a payload as each of these contains real data that needs to be applied - rather than just an instruction to do something with data somewhere else.

    Getting Queued - appears to be one of the more confusing messages.  I mentioned above that some jobs, such as save project from Project Professional, have a payload. This payload goes into the queue as a group of related messages, which then get processed once they reach the front of the queue.  Getting queued means that these messages are going into the queue.  It is possible that the Getting Queued message appears for some time because a very large project is coming in across a very slow link.  One other potential problem that can break things is if this flow in of messages does not complete.  Perhaps the Project Manager saving the project shuts down Project before it completes - or perhaps goes out of wireless range midway through the process.  Either way the Getting Queued could sit there for some time. To fix this up find the person who has this project in mid-save and get them to reconnect and complete the job.  As a last resort you can cancel the Getting Queued - but YOU WILL LOSE DATA!  Any changes the Project Manager made will not get saved.  To protect you from inadvertently canceling one of these jobs we add a check box under Advanced options labeled "Cancel jobs getting enqueued" which will need to be checked before these jobs can be canceled.

    Failed and Not Blocking correlation - is a failure that is isolated and not stopping any other jobs from processing.  The term correlation is used to group related queue jobs together.  There should be an associated error message and entries in the log to help explain the problem.

    Failed and Blocking correlation - means that something bad happened that is also blocking other things in the related group.  If a save fails then a publish could not continue would be one example.

    Success - is the one message we like to see!  It can also be useful to sometimes show the Success messages (by default they are not shown in the Manage Queue display) as it is a way of seeing if the queue is working at all.  Adding the completion state of Success through the options on the manage queue page is how this is done.

    Canceled - means what it says.  It could have been canceled by a user, but it is also possible for jobs to be canceled by the server.  One example would be a failure early on in a save from Project Professional.  A job would have been added to the queue for the save - but reconnection may lead to cancellation of this job and the addition of another save job - it really depends hoe far the save got before the problem.  I simulate bad things like this by pulling my network cable out just after hitting save - just to see what happens!

    I will follow up with another posting on the queue with some further tips on troubleshooting -but my parting gift is a guide to what the dialogs at the bottom of Project Professional 2007 mean during a save.

      • Blue progress bar- saving to local cache
      • Synchronizing data to server...- The data is going from the local cache to the PSI and being passed into the queue (Getting Queued)
      • Save job xx% complete.  Expected Wait Time 20s - The job is either Waiting to be processed or more likely Processing.  Once you see this then it is safe to close Project Professional - your saves are safely in the queue!

    Technorati Tags: Project Server 2007

  • Brian Smith's Microsoft Project Support Blog

    Monitoring Tools for Project Server 2007


    I'm just playing around with both the Microsoft Office Project Server 2007 Management Pack for MOM 2005 and also the Microsoft Best Practices Analyzer for Windows SharePoint Services 3.0 and the 2007 Microsoft Office System.  Nothing much to report just yet, but I'd love to hear comments on how you are finding these tools.  The Best Practices Analyzer does have quite a few specific rules for Project Server 2007 - and the plan is that we will extend the rule sets for both of these products as we come across new "gotchas". Let us know if you think we are missing stuff already.

    A couple of early "gotchas" that might also get you are:-

    • MOM 2005 Workgroup SP1 doesn't play nicely with SQL Server 2005 - you need to do an unattended install and then all is well - otherwise you can spend a long time clicking Next on the SQL Server instance selection page of the wizard...  See KB 925480 for more details.
    • The Best Practice Analyzer has an issue getting to SharePoint and Project Server databases that happen to be in named instances - a fix is in the early part of the pipeline.  Let me know if you run into this one.

    There are evaluations available for Microsoft Operations Manager 2005 SP1 .

    Once I've had these running for a while I'll report back on how they worked for me.

    Technorati Tags: Project Server 2007

  • Brian Smith's Microsoft Project Support Blog Project Search Page


    I can't imagine there are too many people who read my blog that don't also read Treb's postings from the Project product group - but just in case you missed it Treb has done some really cool stuff with's macros for search.  Take a look and try it out at


    Technorati Tags: Project Server 2007

  • Brian Smith's Microsoft Project Support Blog

    Project Server 2007 with LDAP Authentication



    For customers that used Project Server 2003 and made use of the “ProjectServer” accounts (non-Windows authenticated) they have a few choices in Project Server 2007. The first consideration I suggest is “why were you using ProjectServer accounts?”. If the answer is that you don’t have Windows domains but use some other authentication method, and LDAP is that other method – then I have good news! LDAP is a supported authentication provider for Windows SharePoint Services v3, and therefore Microsoft Office Project Server 2007 as well.

    I can see this being a popular authentication method for those customers who do not use Windows Authentication but have some other directory as it enables them to re-use the directory they have - rather than have to create a whole new set of users in some other place (such as the ASP.NET SQL Membership Provider database).

    For my tests with LDAP I used Microsoft ADAM (Active Directory Application Mode) to be my Lightweight Directory Access Protocol service - but you should be able to use any LDAP compliant service. 

    The basic steps once you have a LDAP source to authenticate against is:-

    1. Extend your port 80/443 site to another port (and I would strongly recommend this extended site use SSL!) and zone - such as Intranet
    2. Set the Authentication Provider for this new zone to LDAPMembership - through Central Administration, Operations, Authentication Providers (this is just a name and needs to match the provider you add to the web.config files
    3. Edit the web.config(s) for the SharePoint Central Administration and also our newly extended site to add our membership provider LDAPMembership
    4. Add a Windows SharePoint Services user through Central Administration, Operations, Policy for Web Application for our Intranet zone using the format LDAPMembership:User1
    5. Add a Project Web Access user with forms authentication again using the format LDAPMembership:User1

    There is a blog from Matt at Pointbridge that gives more in-depth details - thanks Matt.  As the trickiest piece I found was getting the format of the addition to the web.config to match the structure of your LDAP directory I will just go into more detail on that step.

    The section needs to go into the top level <system.web>...</system.web> section - just make sure not to break any existing XML.  I usually put it at the end, just before </system.web>.  Also be aware that there are some other <system.web> sections that are lower down the hierarchy - under the <location> section I think.  Don't put it in these!

    So a sample membership section may look like this:-

    <membership defaultProvider="LDAPMembership">
        <add name="LDAPMembership" type="Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=, Culture=neutral, PublicKeyToken=71E9BCE111E9429C"
        otherRequiredUserAttributes="sn,givenname,cn" />

    and this would match up to a directory where the LDAP server was called "nondomain" and was set to use port 50000 (port 389 is the default LDAP would normally use) and this would authenticate against any objects in the userContainer that matched the userFilter - and use the distinguished name as the name to match.  So in this case all items in the container defined by CN=Users,OU=WSS,O=nondomain,C=US that have an object class of user.  LDP.exe is a good toll that you can find in the Windows 2003 Support tools that helps to understand the containers and filters.

    Another more complex example would be:-

    <membership defaultProvider="LDAPMembership">
    <add server="ps2007ldap" port="50000" useSSL="false"   userDNAttribute="distinguishedName"
    userNameAttribute="cn" userContainer="CN=Users,OU=Support,O=fabricam,C=US"
    userObjectClass="user" userFilter="(ObjectClass=user)" scope="Subtree"
    otherRequiredUserAttributes="sn,givenname,cn" name="LDAPMembership"
    type="Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=, Culture=neutral, PublicKeyToken=71E9BCE111E9429C" />
    <add server="ps2007ldap" port="50000" useSSL="false" userDNAttribute="distinguishedName"
    userNameAttribute="cn" userContainer="CN=Users,OU=Extranet,O=fabricam,C=US"
    userObjectClass="user" userFilter="(&amp;(memberOf=CN=ProjectUsers,OU=Extranet,O=fabricam,C=US)(memberOf=CN=WSSUsers,OU=Extranet,O=fabricam,C=US))" scope="Subtree"
    otherRequiredUserAttributes="sn,givenname,cn" name="LDAPMembership2"
    type="Microsoft.Office.Server.Security.LDAPMembershipProvider, Microsoft.Office.Server, Version=, Culture=neutral, PublicKeyToken=71E9BCE111E9429C" />

    and in this case there are two providers (this would be in the Central Admin web.config - each of the 2 extended sites in this case would just have either the LDAPMembership or LDAPMembership2 section) authenticating for two different zones - such as Intranet and Extranet. 

    LDAPMembership is authenticating against users in the CN=Users,OU=Support,O=fabricam,C=US container.

    LDAPMembership2 is authenticating against users in the same container, but this time using the filter with the filter ="(&amp;(memberOf=CN=ProjectUsers,OU=Extranet,O=fabricam,C=US)(memberOf=CN=WSSUsers,OU=Extranet,O=fabricam,C=US))"  which will only authenticate users in both the ProjectUsers and WSSUsers groups defined in the directory.  Please note the &amp; - which replaces the usual & used in LDAP queries.

    You will also see format of these sections is different from the one above - but still contains exactly the same attributes - just in a different order.  This is as a result of editing through the InetMgr interface.  Please be aware of a potential break caused by using the InetMgr UI - the <configuration> element gets re-written as <configuration xmlns=""> and this will give an application error in WSS.  See KB 917238 for details.

    Have fun with LDAP - I think this may be the most popular of the additional authentication providers - and this time the "projectserver" users will be able to get at all the SharePoint content such as risks, issues and documents - as well as the new feature - deliverables. However, like the 2003 "projectserver" users, these forms based users would still need a Windows account to use the Data Analysis (OLAP Cube) features that SQL Server Analysis Services provides.

    Technorati Tags:

Page 91 of 96 (476 items) «8990919293»