Little Known Facts (Issues) of MOSS Content Deployment Jobs (MOSS 2007)

I spend 1.5 years working on a MOSS project (yes, the project was that long…) developing a MOSS web content management platform. Here are some things I could like to share during my 1.5 years of my life (yes, I know a lot about MOSS web content management after 1.5 years of my life spend living with it)… things Microsoft didn’t want anyone to know…  on a side note, some of the problem can be fix using custom code, if you run into any of the problem email me…

I am sure most of you who uses MOSS know there is a thing in SharePoint call “content deployment” features which allow you to deploy approved content from server 1 to server 2. This function is created for web content management and web publishing. Here are some little known fact about this “content deployment”. I will try to update this post as I remember more of things we run into during the project…

  • Microsoft whitepaper say you can have a 3 stage deployment (Develop, Staging, and Production), but this is false!
    • What Microsoft is trying to say on their whitepaper is that you can do the following:
      • Develop to Staging
      • Develop to Production
    • There is no out-of-the-box solution for this one yet… you can have a workaround using custom code by coding a manual timer job
    • Technically you can only do 2 stage content deployment. This doesn’t really work for firm that is regulated by government such as the FDA that “WANTS” to have a 3 stage content deployment process (check your work before having the content go to the public for government regulation purpose).
  • MOSS web content management have a lot of bugs…
    • Content deployment within MOSS’s web content management is nothing close to perfect… Check out some of my other blogs for some of those errors…
    • A lot of those errors are “unexplainable”, and the only way to fix it is to recreate the deployment jobs.
  • Microsoft calls it “content deployment job”, but do you know technically all your content are deploy to the 2nd server?
    • In MOSS when you create a document it is call version 0.1 and when its publish it is then call version 1.0
    • Version 1.0 is then publish to the internet for the rest of the world to view.
    • BUT the way content deployment works is that it copy all version to 2nd server, then uses permission to mask the content from being display on the internet…
    • This means every version you have (even un approved version) are “technically ” on the 2nd server available to the rest of the world, the public just can’t view it because of permission.
  • Versioning
    • Depends on how your content deployment job is setup, the 1st server will copy and overwrite content in 2nd server. Not a big issue until you are trying to figure out the version in server 2 and dealing with the database size…
    • This is how it works:
      • when things is approve, server 1 copies the content to server 2.
      • Server 2’s content is then overwritten and the new content is rename as a new version.
      • Image the server does this every 15 mins (common schedules for MOSS web content management)… by week 2 you have on version 500+!!!
    • Why is this important? What if you are trying to build a report that shows you version in dev and production? You can’t build a report with this type of behavior…
Advertisements

Content Deployment Job Failure – Checked Out Document

Problem

The following error message is displayed in the job status log and content deployment job fail.  The error message indicates a file is checked out.

Troubleshooting info for MOSS and Content Deployment2

Solution

This issue can happen due the following reasons.
1. A document is checked out in the destination site collection. Manually check in the document at the destination site and reran the content deployment job.

Error: Content Deployment Job Warning – KeyNotFoundException

 

Problem

The following warning message is displayed in the job status log, content deployment job continue to ran and does not effect content deployment job.
<ReportMessage Title="The file with Id 351baeda-d4e2-48cf-a1fa-ee5034006f02 cannot be deleted because it does not exist in the destination site collection." Time="2008-06-09T17:22:29.2726437Z" Severity="Warning" ObjectName="/ Test.css" Phase="ImportInProgress" />’

 

Solution

To remove the warning
1. Modify content deployment job to conduct an All Content deployment, reran content deployment job, and then modify the content deployment job back to deploy Changes only.

Content Deployment Job Continue to Fail

Problem

Content deployment job continue to fail after you deploy the content using the All Content.

 

Solution

This issue can fix with the follow approach.
1. A last recommended option to fix the content deployment job is to delete the destination site collection, recreate the content deployment job, and then reran deployment job.

Content Deployment Job Ran Successfully but the Deployed Contents are Incorrect or the Page Display a Missing Sharepoint Control Error

Problem

Content deployment job ran successfully but the content is incorrect or the pages display a missing Sharepoint control error.

Solution
This issue can fix with the follow approach.
1. The temporary files was not deleted correctly, log into the server and manually delete the temporary files found in the folder. Then delete the destination site collection, recreate the content deployment job, and then reran deployment job.

Content Deployment Job Error – The Specified Name is Already in Use

 

Problem

The following error message is displayed in the job status log and content deployment job fail.
<ReportMessage Title=”The specified name is already in use. A document cannot have the same name as another document or folder in this document library or folder. Click your browser’s Back button, and type a new name. at Microsoft.SharePoint.Library.SPRequest.CreateOrUpdateFileAndItem(String bstrUrl, String bstrWebRelativeUrl, Guid& docId, Object varDoc, Int32 docLength, Int32 exists, String bstrCreatedBy, String bstrModifiedBy, Int32 iCreatedByID, Int32 iModifiedByID, Int32 iVersion, Object varTimeCreated, Object varTimeLastModified, Object varProperties, String checkInComment, Int32 docLibRowID, String bstrListName, UInt32& pdwVirusCheckStatus, String& pVirusCheckMessage) at Microsoft.SharePoint.Deployment.FileSerializer.CreateOrUpdateFileWithGuid(SPFileStream spstm, SPWeb web, Guid fileId, String fileUrl, SPUser author, SPUser editor, String checkinComment, DateTime timeCreated, DateTime timeLastModified, MetaInfoHandler metaInfo, FileInfo fileInfo, Int32 iVersion, Boolean isFirstVersion, SPImportSettings settings, Int32 listItemId, String listInternalName)” Time=”2008-06-09T18:24:27.4756013Z” Severity=”Error” ObjectName=”/Documents/Search Test Text.txt” Phase=”ImportInProgress” />

Solution

This issue can fix with the follow approach.  

The files in the destination site collection does not match the source site collection, try deleting either the source or destination files (basically one of the files is causing the problem), and then reran content deployment job.

Error: Sharepoint Content Deployment Job Failure – KeyNotFoundException

Content Deployment Job Failure – KeyNotFoundException

Problem

The following error message is displayed in the job status log and content deployment job fail.
<ReportMessage Title=”The given key was not present in the dictionary. at System.ThrowHelper.ThrowKeyNotFoundException() at System.Collections.Generic.Dictionary`2.get_Item(TKey key) at Microsoft.SharePoint.Deployment.ListItemSerializer.AddOrUpdateDoclibItem(SerializationInfoHelper infoHelper, SPListItem& listItem, SPWeb web, Guid newId, String& listItemServerRelativeUrl, Boolean bIsPublish, Boolean exists, StreamingContext context, ISurrogateSelector selector, ImportObjectManager objectManager) at Microsoft.SharePoint.Deployment.ListItemSerializer.SetObjectData(Object obj, SerializationInfo info, StreamingContext context, ISurrogateSelector selector) at Microsoft.SharePoint.Deployment.XmlFormatter.ParseObject(Type objectType, Boolean isChildObject) at Microsoft.SharePoint.Deployment.XmlFormatter.DeserializeObject(Type objectType, Boolean isChildObject, DeploymentObject envelope) at Microsoft.SharePoint.Deployment.XmlFormatter.Deserialize(Stream serializationStream) at Microsoft.SharePoint.Deployment.ObjectSerializer.Deserialize(Stream serializationStream) at Microsoft.SharePoint.Deployment.ImportObjectManager.ProcessObject(XmlReader xmlReader) at Microsoft.SharePoint.Deployment.SPImport.DeserializeObjects() at Microsoft.SharePoint.Deployment.SPImport.Run()” Time=”2008-06-09T17:23:10.3666567Z” Severity=”Error” Phase=”ImportInProgress” />
<ReportMessage Title=”Content deployment job ‘Remote import job for job with sourceID = 8756c9f4-7dd1-4ebb-a9c2-3bd895fb14ab’ failed.The exception thrown was ‘System.Collections.Generic.KeyNotFoundException’ : ‘The given key was not present in the dictionary.'” Time=”2008-06-09T17:23:11.1635368Z” Severity=”Error” Description=”” Recommendation=”” Phase=”ImportInProgress” />
</ArrayOfReportMessage>

Solution

This issue can fix with the follow approach.
1. Modify content deployment job to conduct an All Content deployment, reran content deployment job, and then modify the content deployment job back to deploy Changes only.