Publication of the big-sized Enterprise projects from Project Professional 2013 to Project Server 2013 takes about 60+ minutes.

Dear Sirs,
I need your support over the following MS EPM 2013 issue:
Publication of the big-sized Enterprise projects from Project Professional 2013 to Project Server 2013 takes about 30+ minutes. We
need to reduce this total publication time down to acceptable working values 10+- minutes.
Environment information:
Single App Server (Virtual): 16 Gb RAM, x64 4xCPU, HDD > 50 GB free disk space, OS Windows Server 2012 Standard Edition x64 Service
Pack 1, MS SharePoint Server 2013 and MS Project Server 2013 with CU December 2013 (KB 2850024) applied.
Single RDBMS MS SQL Server (Virtual): 8 Gb RAM, x64 4xCPU, HDD > 200 GB free space, OS Windows Server 2012 Standard Edition x64 Service
Pack 1, MS SQL Server 2012 x64 SP 1 Enterprise Edition.
We have 1Gbit LAN between APP, DB server and 1Gbit LAN between APP and Proj Prof Client.
Yes, we are on the way of migrating to the Prod environment
with 3-tiered architecture (with SP1 slipstream and CU December 2014 applied), but this issue also
presents there.
Project’s file information:
Tasks in the file: [~4900], resources in the file [~396] enterprise task’s custom fields used in the file [~23].
Project save procedure for this new project would last about 7 minutes. Project publication would last about 47 minutes. We noticed that
tasks synchronization process took about 1 second for each ~2,5 tasks, to add them to the sharepoint tasks list. So for all 5148 tasks it took about 5148/3/60 =  34 minutes. Other 13 min was used for reporting database publication and other tasks relevant
for new sharepoint site creation.
Case 1: Issue description:
During the Enterprise project’s file save and publication we have the following sharepoint 2013 log messages:
07.31.2014 12:43:17.22 Microsoft.Office.Project.Server (0x0358) 0x3D5C SharePoint Foundation Monitoring b4ly High Leaving Monitored Scope
(Persisting list changes). performing time =376.068676326181 22dca99c-4696-70f1-e9e2-06851d0bcffd
07.31.2014 12:43:17.69 Microsoft.Office.Project.Server (0x0358) 0x3D5C SharePoint Foundation Monitoring b4ly High Leaving Monitored Scope
(Persisting list changes). performing time =361.652807828928 22dca99c-4696-70f1-e9e2-06851d0bcffd
It shows that sharepoint spend at least ~350 milliseconds (or 0,35 sec*4900 tasks = 1715 sec, or 28,5 min) for each task update during
project publication. And we also have another log file that shows that about 0,7 sec (or 0,7 sec*4900 tasks = 3430 sec, or 57 min) sharepoint spend for save each task in project file to project server. So total save and publication time more then 60+ minutes
for that project file. The same result we have even if user didn’t do any changes at the project file.
We use only enterprise projects (dbo.MSP_EpmProject_UserView.projectvisibilitymode = «False»), and do not use sharepoint tasks lists,
but the synchronization between MSP Plan and SharePoint tasks list works at any case.
Case 2: Issue description:
- For the second test we created a new project with new sharepoint project’s site on basis of our «issue» project, with total amount
of tasks in it of 5148 (yes, we increased the tasks list default limit at the sharepoint site up to 6000 items in it – standard limits for sharepoint view list – 5000 items).
- Project save procedure for this new project would last about 7 minutes. Project publication would last about 47 minutes. We noticed
that tasks synchronization process took about 1 second for each ~2,5 tasks, to add them to the sharepoint tasks list. So for all 5148 tasks it took about 5148/3/60 =  34 minutes. Other 13 min was used for reporting database publication and other tasks
relevant for new sharepoint site creation.
-Then we deleted the
tasks list for that new test project from the sharepoint site and republish the project plan one more time. This time project save procedure took about 7 minutes, project publication about 2 minutes and 3 minutes for other relevant queue jobs. So total time
is 12 minutes.
As a conclusion: yes, we have determined
the exact problem - during synchronization process (from Project Server to SharePoint) it perform copying all tasks and related data from Project to SharePoint in spite of fact that you changed only ONE task or ALL of them. At any case, synchronization will
copy ALL of them from Project Server to SharePOint task’s list.
Our workaround is to disable the task’s synchronization for such big-sized project plans:
– to delete the SharePoint «tasks» list at the SharePoint site tied with project plan.
- or deattach the SharePoint site from the project plan.
Thank you for reading this topic, please if you also forced with such issue provide us any known workaround or maybe any official response
\ feedback from MS about it.
Thank you in advance,
Best Regards, Andrey

Regarding my topic, I also said that every time when sync works it updates All items from project’s plan at Project Server to corresponded task’s list at SharePOint server. Inspire of the fact that you changed only One task or group /
all of them at your project’s plan.
And it seems to me and my colleagues that it’s probably (maybe) a “bug” at the product. Here is what we have if looked a little bit closer to the code:
Share Point determines what task to sync from Project’s plan to sharepoint list. To do that sharepoint needs to know was that task changed or not, based on the following fileds (check SQL stored procedure “[MSP_READ_TASKS_FOR_SYNCRONIZATION]”):
TASK_UID    TASK_NAME    TASK_START_DATE    TASK_FINISH_DATE    TASK_PCT_COMP    TASK_PARENT_UID    TASK_OUTLINE_NUM   
WSS_LISTITEM_UID   TASK_ID    TASK_IS_ACTIVE
We noticed that at any case synchronization performs for all tasks, EXCEPT the ROOT one. Then we looked at the comparison of TASK_PARENT_UID field. So sharepoint compares TASK_PARENT_UID with ParentID (this is internal name for lookup
field “Tasks” at the Sharepoint, and it stores their values at the format "ID;#Title").
And comparison performs like following:
SharePoint looks for Task at the Tasks’s list corresponded to Project’s plan with ID represented at the TASK_PARENT_UID field. Then it takes SharePoint ListItem ID (“int” type) and store it to the “num” parameter;
num = this.GetCachedListItemByUniqueId(listItem.ParentList, nullable.Value).ID;
   2.Then it compares “num” with task’s “ParentID” at SharePOint as follow with operator “!=”:
((SPItem) listItem)["ParentID"] != (System.ValueType) num
   3. If comparison was success (true) – then it tell us that values (at the Project’s plan for tasks) was changed, then it need to be synchronized. Corresponded Method setup “true” flag, and then returns it.
The “bug” is that this expression at the Step 2 will always return “true”, because in fact it compares “string” (see above – that this is lookup field at SharePoint side)
with “number”. For example if the parant task ID is “55”, then we get:
"55;#Task 1" != 55
And by the rules of .Net the “string” will never equal “number”
Furthermore this is approved by the SharePoint logs:
In that case we always get the note “Setting ParentID to” at the logs (we see it if turns on Verbose for “Project Server” -> “Sharepoint Integration” category).
So at any case of publishing project’s plan we always get that note at the logs for tasks that have Parent task, and we have Parent for all of them EXCEPT the ROOT one, exact logs represented further:
10/15/2014 02:37:32.26    Microsoft.Office.Project.Server (0x07D8)    0x06E8    Project Server    Sharepoint Integration    ado0d   
Verbose    Setting ParentID to 1    bf2fc29c-7727-b00d-fa4a-34f22ea9ec1d 10/15/2014 02:37:32.62    Microsoft.Office.Project.Server (0x07D8)    0x06E8   
Project Server    Sharepoint Integration    ado0d    Verbose   
Setting ParentID to 1    bf2fc29c-7727-b00d-fa4a-34f22ea9ec1d 10/15/2014 02:37:32.63    Microsoft.Office.Project.Server (0x07D8)    0x06E8    Project Server   
Sharepoint Integration    ado0d    Verbose   
Setting ParentID to 1    bf2fc29c-7727-b00d-fa4a-34f22ea9ec1d 10/15/2014 02:37:32.67    Microsoft.Office.Project.Server (0x07D8)    0x06E8    Project Server   
Sharepoint Integration    ado0d    Verbose   
Setting ParentID to 1    bf2fc29c-7727-b00d-fa4a-34f22ea9ec1d 10/15/2014 02:37:32.69    Microsoft.Office.Project.Server (0x07D8)    0x06E8    Project Server   
Sharepoint Integration    ado0d    Verbose   
Setting ParentID to 5    bf2fc29c-7727-b00d-fa4a-34f22ea9ec1d
The following is the complete Method’s code from the corresponded reflector:
private bool UpdateParentID(DataSet taskDS, DataRow row, SPListItem listItem, Dictionary<Guid, SPListItem> redoEntries)
bool flag = false;
int index = taskDS.Tables[0].DefaultView.Find((object) DataRowExtensions.Field<Guid>(row, "TASK_PARENT_UID"));
if (index >= 0)
Guid? nullable = DataRowExtensions.Field<Guid?>(taskDS.Tables[0].DefaultView[index].Row, "WSS_LISTITEM_UID");
int num = -1;
if (listItem.Fields.ContainsField("ParentID"))
if (nullable.HasValue)
try
// STEP 1
num = this.GetCachedListItemByUniqueId(listItem.ParentList, nullable.Value).ID;
catch (ArgumentException ex)
if (redoEntries != null)
if (!redoEntries.ContainsKey(DataRowExtensions.Field<Guid>(row, "TASK_UID")))
redoEntries.Add(DataRowExtensions.Field<Guid>(row, "TASK_UID"), listItem);
//STEP 2
if (num != -1 && ((SPItem) listItem)["ParentID"] != (System.ValueType) num)
((SPItem) listItem)["ParentID"] = (object) num;
ULS.SendTraceTag(845443U, (ULSCatBase) ULSCat.msoulscat_PS_ProjectSharepointIntegration, ULSTraceLevel.Verbose, "Setting ParentID to {0}", new object[1]
((SPItem) listItem)["ParentID"]
//STEP 3
flag = true;
else if (((SPItem) listItem)["ParentID"] != null)
((SPItem) listItem)["ParentID"] = (object) null;
ULS.SendTraceTag(2495056U, (ULSCatBase) ULSCat.msoulscat_PS_ProjectSharepointIntegration, ULSTraceLevel.Verbose, "Resetting ParentID to null");
flag = true;
return flag;
Any thoughts about it would be much appreciated!

Similar Messages

  • How can I convert .cp projects from Captivate 2 to .cptx projects for Captivate 7?

    How can I convert .cp projects from Captivate 2 to .cptx projects for Captivate 7? Do I have to use some other version between 2 and 7 to do this?

    I doubt you are going to be able to find all those previous versions and the time it would take to install, open the project, verify it, and everything in between (and without license keys, they would only be saved from trial versions which would be an issue), it seems it would be better just to start with Cp7 and put the effort into that.
    Completely off topic, one of the things I like about Authorware is that Macromedia provided previous versions that would allow you to open up and save the projects to get to version 7. It was a nice little touch they provided for developers. I don't believe that Adobe does this for Captivate though.
    Dave

  • My imac takes about eight minutes to be fully functional after a cold start or from the sleep mode. The hard drive sounds like it has to go through a number of gyrations before being fully loaded. When I first bought the imac start up was much faster

    My Imac takes about 8 minutes to be fully functional after a restart or awakened from the sleep mode. I can hear the hard drive making a number of gyrations before it's ready to let me do stuff. This is a 5 year old machine and was much faster in the beginning. Any suggestions?

    Impossible to say however it may need more RAM, or if you have been turning it off every day it isn't given the opportunity to run it's daily, weekly and monthly maintenance. This is all done in the background in the middle of the night. I would recommend following the steps in 25 Ways to Speed Up Your Mac until you find the cause of your slowdown.

  • The minimum number of downloads from app store of average paid app ? Describe about guarantee of earning...

    The minimum number of downloads from app store of average paid app ? Describe about guarantee of earning....

    kalrav47 wrote:
    The minimum number of downloads from app store of average paid app ?
    The minimum is zero.
    Describe about guarantee of earning....
    There are no guarantees.

  • My iPhone 3GS on iOS 5.1 will randomly stop what I'm doing show a black screen then the spinning icon and then it shows my lockscreen. It takes about a minute to do this and it does it about 30 times a day. How do I fix this?

    My iPhone 3GS on iOS 5.1 will randomly stop what I'm doing show a black screen then the spinning icon and then it shows my lockscreen. It takes about a minute to do this and it does it about 30 times a day. How do I fix this? It is EXTREMELY ANNOYING!

    No, sounds like when you dropped it an cracked the screen it may have also damaged the logic board or the repair person damaged a cable.

  • I need help migrating an existing project from Flash Professional CS6 to Flash Builder 4.6.

    I have followed tutorials...instructions on the web...all I get are unsolvable errors.
    I have a large Air application that compiles fine and works in Flash. However I would like to take advantage of the as3xls api which does not work in Flash Professional (for no reason in particular the internet just tells me it won't work because Flash Professional cannot access some part of the Flex framework).
    So I want to make my project work in Flash Builder. However, when I attempt to reference my document class, flash builder gives me an error telling me the package path com.andrewbefus.ModelMapper no longer works. It does this no matter how I select the folder to reference my document class. If I change the path to nothing...Flash Builder is happy with my document class and unhappy with every other class I have made.
    Then I decided to make a new Flash Builder ActionScript file and simply replace the ModelMapper.as document class that Flash Builder created with my completed ModelMapper.as. After some messing around with paths and directories, I got Flash Builder to be happy with my program structure but then all hell broke loose on almost every single Class outside the Flash Builder framework. One by one I attempted to tell Flash Builder where to go to get my components, fl.motion classes, and my custom classes but Flash Builder refused to recognise them unless I reference the folder containing the files, and then proceeded to tell me that the project path of every single class needed to be changed. I imagine if I spend the rest of my day mucking around with this something else will come up.
    I went looking for a tutorial explaining how to migrate a Flash Professional project over to Flash Builder. The closest thing I could come up with told me to just select my fla. file by going Project<Flash Professional<Create project using Fla file... which worked great except refused to compile my project as a desktop application for no sane reason - giving no option to select my project when I attempted to create a new Run Configuration.
    One frustration after another....

    I've also followed all the instructions here:
    http://helpx.adobe.com/x-productkb/policy-pricing/activation-network-issues.html
    Still no luck...
    L.

  • HT4623 After the iOS 7 update my camera does not operate correctly.  It will take about 5 photos then it becomes very sensitive, moving between "video & square".  I turn  it off & back on, it work for a second or two & lockout again.

    After updating my iPad my camera does not operate correctly. It will take about 5 photos then lockup. It also becomes very sensitive when I try to zoom in, it changes to "video or square".  I have to turn off for awhile then it repeats the same  malfunction, just lockup again.

    After updating my iPad my camera does not operate correctly. It will take about 5 photos then lockup. It also becomes very sensitive when I try to zoom in, it changes to "video or square".  I have to turn off for awhile then it repeats the same  malfunction, just lockup again.

  • After a reboot of the system firefox 6 take about 5 minutes to start, I thought it was suspposed to be faster

    I upgraded to firefox 6 on Monday, and rebooted the system today (friday) when I tried to open firefox 6 it took almost 5 minutes to start up, and then it was completely available for a about another minute or so.
    I thought 1 of the key advantages of upgrading was that firefox 6 was suspposed to start up a lot faster.

    Troubleshooting extensions and themes
    * https://support.mozilla.com/en-US/kb/Troubleshooting%20extensions%20and%20themes
    Clear Cookies & Cache
    * https://support.mozilla.com/en-US/kb/Template:clearCookiesCache
    Clear the Network Cache
    * https://support.mozilla.com/en-US/kb/How%20to%20clear%20the%20cache#w_clear-the-cache
    Troubleshooting plugins
    * https://support.mozilla.com/en-US/kb/Troubleshooting%20plugins
    Check and tell if its working.

  • A rebuild removed projects from photos and put empty projects in the trash.

    I'm running Aperature 3.2.4 in OS 10.6.8 (Snow Leopard) on a MacBook Pro 1,1
    I have a large library of 37,000 images on an external hard drive. I have experienced a number of problems which culminated in a corrupted drive and library which I have taken several steps to repair. In an attempt to be thorough, I may be including more info than necessary, but here is my tale.
    1) There have been inconsistencies for some time when deleting photos in the camera (compact flash card uploaded through camera) when importing photos. Occurring more frequently, the photos did not get deleted when I made that selection, most normally with the unmount camera box check. This is a big deal, I adapted by checking the camera when it was unmounted.
    2) I hadn't been emptying the trash in Aperture and accumulated several hundred photos in the trash. Blame it on procrastination and no appearance of pressing necessity.
    3) My camera has developed some problems with the USB port, perhaps getting worn with a lot of use. When importing photos, the camera has recently started disconnecting during the import of photos..
    4) This has resulted in a corrupted drive directory, which I was able to repair with Disk Warrior. It also resulted in photos that were not in the Aperture library. Aperture was no longer able to see those unimproved photos, no matter what drive I was able to copy them to. I resolved the import problem by changing the file name slightly. I assume that Aperture registers filenames before importing, and if the import fails, Aperture is unable to see that the import failed. I have added those files by changing the file names, and my long term solution was to get a CF card reader.
    5) I thought that my problems were solved, but when I opened Aperture today, I got a dialog box telling me that I need to repair permissions, then another about rebuilding the library, and a whole series of failed attempts to do so with a string of boxes suggesting that I quit, rebuild, or repair, all attempts eventually hanging. Disk Warrior tells me that several plists mostly involving changes could not be repaired. After several attempts and restarts, I was able to open the library in Aperture.
    6) The left window was missing a large number of projects, but in photo view, all of the photos and versions were there with the meta data showing a path to the original projects. In the project view, all of the projects were there, but I could not open any by clicking on them. When I viewed the trash contents, there were a lot of empty projects. It was probably a mistake, but I emptied the trash.
    7) I have not closed Aperture for fear that might result in changing those paths attached to photos. Hopefully they are the key to setting things straight.
    Is there any way I can undue the trash dump, or otherwise return photos to the appropriate projects? I'm talking about nearly 400 projects, so this is not a minor glitch.

    I quit Aperture, which hung up while writing preveiws, so I did a force quit. I restarted Aperture while holding down command and option keys, but Aperture opened directly into library with all projects and photos intact. Oddly enough the projects seem to be in a random order, certainly a different order.
    I closed Aperture without a problem
    I ran Disk Warrior again, and once again there are damaged property lists that cannot be repaired. There are 9 plists numbered from
    File: "0000000002.plist"
    thru
    File: "0000000012.plist"
    all in
    Aperture Library.aplibrary/Database/History/Changes/
    I opened Aperture again while holding down command and option keys, this time getting the dialog I wanted, and I'm now running Repair Library Database.
    Well the dang thing seems to be hung at "Repairing Library 100% complete"
    I'll give it a while, Force Quit and try again.
    Any suggestions? Should I try a rebuild on the next try?

  • How to migrate C++ project from VS 2015 Ultimate Preview to VS 2013 Professional

    Hi!
    Is there any convenient way to migrate a VCXProj from 2015 Preview to 2013? 2013 gives an error saying that it cannot migrate the project.
    Thanks,
    -BalinKingOfMoria

    Is the error you get about Platform Toolset v140?
    I just "downgraded a VS 2015 C++ project to VS 2013 and encountered an issue with Platform Toolset v140 not recognized in VS 2013.
    Simple fix: Project->(your project name) Properties...
    In the Properties dialog, drop down the Platform Toolset list and select VS 2013 V120.
    After I did that, I could rebuild successfully and the conversion was completed.

  • HT4301 i want to project from my imac to epson project

    i have a big trouble with my laptop mac because i can not project the image with epson projector. How do I fix the problem?

    frankly impossible

  • Access non-DC project from a DC Web Dynpro project

    Hi,
    I have a DC Web Dynpro project that needs to access a non-DC Java project. As I cannot create a public part of the non-DC Java project then add that public part to the used DC list of the DC Web Dynpro project, I add the non-DC Java project to the build path of the DC Web Dynpro project. That way I can do the coding without any issue, but when I build the Web Dynpro DC, I keep getting building error saying that the Web Dynpro DC doesn't see the classes in the non-DC Java project.
    How can I resolve this issue without switching the non-DC Java project to a DC?
    I am on NW04s.
    Thanks and Best Regards,
    Viet

    Hi Viet,
    There is a way to achieve your purpose, but at the same time, Iu2019m not sure that it will be exactly your requirement.  Anyways, herein, Iu2019m providing you a concept which we had used in our earlier project.
    You need to create a java file with the communication parameters for DC and non DC and after that create a jar file. Now, you create an external library DC of this jar file and publish it as public part with complication and assembly.
    Now, use this external library DC in your DC.
    Thanks
    Gautam Singh

  • HT4848 Two days ago I upgraded my MAC PRO from Lion to Mountain Lion via my account at the Apple App store.  My machine runs so slow with Mountain Lion especially mail that it is completely useless.  It take about ten minutes per mouse click to register. 

    I also run Parralles 7.  I re-installed this a few times with no affect.  I have it not running and my Mountain Lion is still too slow to use.  Again a single mouse or keystroke takes up to ten minues to register. 
    Suggestions ?

    Startup in Safe mode (holding Shift key down) http://support.apple.com/kb/HT1455
    Then you can update or uninstall your problematic third-party software.

  • How to get the incoming filename and store it to sql table using biztalk server 2013

    HI,
    1)I need to get the incoming EDI filename which is received and save the filename in to the database.
    2)How can i get the EDI Duplicate filename if i set the do not allow duplicate under validation tab in X12 agreement settings in biztalk admin console. In this case since the duplicate file will not come in to orchestration. In this case how
    can i acheive this.
    Thanks,
    Vijayan
    vijayan

    For both cases, the filename can be found on the FILE.ReceivedFileName Context Property.  You can access this Property in a Pipeline Component or Orchestration and take any action you want, such as apply to a database.
    The value is accessed by: MyReceivedMessage(FILE.ReceivedFileName)
    In the case of a duplicate EDI Interchange, you would use the Failed Message Routing feature to capture the error message with either an Orchestration or Send Port.

  • Why is it that when I click on a song to play it takes about 5 minutes and doesn't even play the song I picked?

    I got the new update yesterday for my iPad  and it just isn't working right.

    Did the original songs that do not appear on the car player play in the Music app on the iPod? Sometimes glitches happen and they do not. Also, If y ohave a 5G iPod/iOS 7, purchase songs  will show with an cloud icon by them if they are not downloaded if Shall All is turned on in Settings>iTunes and App Store

Maybe you are looking for