none
Project Queue updating issue RRS feed

  • Question

  • Hi

    We are unable to update a project from PSI as the updates like Publish, Chekin etc are taking 1 day + and updating. Sometimes it will throw the below error

    CICONotCheckedOut:
    CICONotCheckedOut (10102). Details: id='10102' name='CICONotCheckedOut' uid='bc51fc5e-f8d3-4047-a20f-4de66f8f08f9'. 
    Queue:
    GeneralQueueJobFailed (26000) - ProjectCheckIn.FailIfNotCheckedOutMessage. Details: id='26000' name='GeneralQueueJobFailed' uid='aeaf9772-0b21-4da3-ba98-ff108828c49d' JobUID='1ee83917-0d3c-4384-9dc8-a34dcea4408f' ComputerName='NP1EPMA006' GroupType='ProjectCheckIn' MessageType='FailIfNotCheckedOutMessage' MessageId='2' Stage=''. For more details, check the ULS logs on machine NP1EPMA006 for entries with JobUID 1ee83917-0d3c-4384-9dc8-a34dcea4408f. 

    Is the project corrupted or what can any body throw some light on the same.

    Thanks

    Geeth


    Geeth If you feel that the answer which i gave you is Helpful please select it as Answer/helpful.

    Monday, February 3, 2014 5:16 AM

All replies

  • Hi,

    You need to be little careful about the sequence of actions you are performing to update project using PSI.

    You have to checkout, queue update, publish(optional), and checkin project back to server in order to update project using PSI. Also i cant emphasis more to use WaitForQueue function, am pasting code below, instead of force sleep within code in order for your queue job to be executed properly withing the queue. 

    also see Brian Smith's post related to use of PSI: http://blogs.msdn.com/b/brismith/archive/2010/10/05/project-server-updating-and-deleting-custom-fields-using-the-psi.aspx

    /// <summary>
    /// Wait for a Job to end
    /// </summary>
    /// <param name="jobId">Job id to wait for</param>
    public void WaitForJob(Guid jobId)
    {
        JobState jobState;
        const int QUEUE_WAIT_TIME = 2; // two seconds
        bool jobDone = false;
        string xmlError = string.Empty;
        int wait = 0;
     
        // Wait for the project to get through the queue.
        // Get the estimated wait time in seconds.
        wait = queuesystemSvc.GetJobWaitTime(jobId);
     
        // Wait for it.
        Thread.Sleep(wait * 1000);
        // Wait until it is finished.
     
        do
        {
            // Get the job state.
            jobState = queuesystemSvc.GetJobCompletionState(out xmlError, jobId);
     
            if (jobState == JobState.Success)
            {
                jobDone = true;
            }
            else
            {
                if (jobState == JobState.Unknown
                || jobState == JobState.Failed
                || jobState == JobState.FailedNotBlocking
                || jobState == JobState.CorrelationBlocked
                || jobState == JobState.Canceled)
                {
                    // If the job failed, error out.
                    Console.WriteLine("Queue request failed \"" + jobState + "\" Job ID: " + jobId + ".");
                    throw new Exception("Queue request failed \"" + jobState + "\" Job ID: " + jobId + ".");
                }
                else
                {
                    Console.WriteLine("Job State: " + jobState + " Job ID: " + jobId);
                    Thread.Sleep(QUEUE_WAIT_TIME * 1000);
                }
            }
        }
        while (!jobDone);
    }
    also after PSI update, are you able to see that queue job stuck in queue? you can restart project server queue service in order to restart any jobs stuck in queue. 

    hope this helps.


    Khurram Jamshed - MBA, PMP, MCTS, MCITP ( Blog, Twitter, Linkedin )
    If you found this post helpful, please “Vote as Helpful”. If it answered your question, please “Mark as Answer”.


    Monday, February 3, 2014 6:53 AM