How to Load a Big One!
There’s no getting around the fact that Microsoft Project XML files are way more verbose than the greatest of Shakespeare tragedies, and can often beget an equally dismal outcome. Is it any wonder then that they cause products like Deltek Cobra to get all choked up when reading them? I think not.
The size of these files beggars the imagination; a schedule with a single 100 day long task, with just one resource assignment starts at a little over 1,500 lines with a file size of around 43KB. Baseline that same single task project and the resulting XML file balloons to over 10,000 lines and nearly 300KB in size on the disk. Even the most modest of 500 task schedules can generate an XML file in excess of 40MBs.
Why does the Cobra guy care about this? Because my customers are finding that these large files are easily capable of jamming up the Project Data integration process in Deltek Cobra, particularly when they are trying to execute this in a Client/Server or N-Tier environment.
The following article looks at a couple of solutions that may help solve the problem – that is until Deltek find a way to tame these prodigious beasties.
The Problem
A standalone installation of Deltek Cobra can easily load the most immense of XML files in a few minutes without causing any changes to your blood pressure. However, if you’re using a Client/Server or N-Tier workstation, the story can be very different. While I can’t speak about the exact mechanisms involved in the process, it’s very clear that when the XML file resides on a machine other than that on which the Cobra Application Server is installed, the processing times for project data integration slow down by orders of magnitude.
The first sign of trouble is during the configuration of the integration. You will find such pick list items as Schedule Project take an inordinately long time to open and display their contents. In fact any of the configuration fields that require data from within the XML being loaded will take a while to open. I’ve seen these take as long as 20 minutes to open in one of the more extreme cases.
Once you eventually get the configuration setup, the delay between clicking the Finish button and seeing the completion message is huge: again I’ve seen this portion take well over an hour. Interestingly, if you look at the log file after an hour of waiting for one of these monsters to run, it will tell you it executed the entire process in just over 1 minute. So I’m not sure what the log file subroutine considers the start of the process; clearly not from when I clicked the Finish button; but it certainly didn’t take into account the 58 minutes I just spent doing something about as interesting as watching wood warp.
The Solution
Rather than having the XML file on the Workstation’s disk drive, instead place it in a shared folder on the Application Server’s disk drive, then run the Integration Wizard and point to the XML via the share. When you point to the XML in the shared folder, Cobra will resolve this to a UNC path in the Microsoft Project 2007/2010 XML file: field; as shown in the figure below.
In the above example the Connection Selection dialog is pointing to an XML file on a shared folder on the application server called xmlfiles. This step means the Cobra system doesn’t have to process the file over the LAN, WAN or VPN, so you will see a significant difference in the speed in which you can open the configuration pick lists and in the final processing time.
By doing this the Application Server isn’t processing the XML file contents across your network. Our tests showed that this method reduced the execution time of our test XML files by a factor of 90% – 95%. This result is very close to the times that will be witnessed on a standalone installation.
Which brings me to option 2: use a standalone Cobra installation to do all your integrations. Once you have a successful process run use the backup feature to create the .CMP file (which is miniscule by the way) and then restore that onto your production version.
A variation on this is Option 3: have a standalone Cobra system connected directly to the production database. Again this option has the effect of naturally placing the XML file on the same system as Cobra, thus bypassing the need for network parsing.
Other Options
If you have a Microsoft Project Server system in place, use the Microsoft Project Server 2003/2007 option in the File menu of the Integration Configuration dialog. This allows you to dial directly into the Microsoft Project data schema and completely avoid the XML step.
Summary
The message is simple; if you must use a Microsoft Project XML file; keep it local.
To read more Deltek Cobra articles click here