I am attempting to migrate data from an Microsoft Content Management Server (MCMS) 2002 instance into a new Microsoft Office Sharepoint Server (MOSS) 2007 installation using the Manage Microsoft Content Management Server Migration Profiles tool in the Operations space of MOSS Central Administration.
When analyzing the profile, I receive 4 warnings, all of which may be safely ignored, but when I actually execute the migration profile, I get the same warnings and an additional error with a description of:
Line 6: Incorrect syntax near ';'.
I have seen this error numerous times when mucking about in SQL Server and recognize it as a Transact SQL error message, but can't find the actual SQL statement that is being executed so that I may determine the source of the error.
EDIT: After enabling verbose logging on the MCMS 2002 Migration category, and poring through the Unified Logging Service (ULS) logs, I received a more complete stack trace at the point of the error, and a couple more anomalies listed below.
Anomalies: The following is an abbreviated listing from the ULS logs around the time of the pre-migration analysis.
01 MCMS 2002 Migration Verbose Start ConnectionCheck
02 MCMS 2002 Migration Verbose End ConnectionCheck
03 MCMS 2002 Migration Verbose Start DatabaseCheck
04 MCMS 2002 Migration High Extra table SiteDeployLock will not be migrated
05 MCMS 2002 Migration High Analysis: Extra index PK__SiteDeployLock__05D8E0BE
06 MCMS 2002 Migration Verbose End DatabaseCheck
07 MCMS 2002 Migration Medium Pre-migration analysis: RootCheckTask is skipped because database check is blocked.
08 MCMS 2002 Migration Medium Pre-migration analysis: RightsGroupNameCheckTask is skipped because database check is blocked.
09 MCMS 2002 Migration Medium Pre-migration analysis: InvalidNameCheckTask is skipped because database check is blocked.
10 MCMS 2002 Migration Medium Pre-migration analysis: LeafNameCheckTask is skipped because database check is blocked.
11 MCMS 2002 Migration Medium Pre-migration analysis: LeafLengthCheckTask is skipped because database check is blocked.
12 MCMS 2002 Migration Medium Pre-migration analysis: TemplateNameCheckTask is skipped because database check is blocked.
13 MCMS 2002 Migration Medium Pre-migration analysis: TemplateCollisionCheckTask is skipped because database check is blocked.
14 MCMS 2002 Migration Medium Pre-migration analysis: PlaceholderCheckTask is skipped because database check is blocked.
15 MCMS 2002 Migration Medium Pre-migration analysis: CheckedOutItemsCheckTask is skipped because database check is blocked.
16 MCMS 2002 Migration Medium Pre-migration analysis: SubmittedItemsCheckTask is skipped because database check is blocked.
17 MCMS 2002 Migration Medium Pre-migration analysis: DeletedItemsCheckTask is skipped because database check is blocked.
18 MCMS 2002 Migration Medium Pre-migration analysis: UserCheckTask is skipped because database check is blocked.
19 MCMS 2002 Migration Medium Pre-migration analysis: FileSizeCheckTask is skipped because database check is blocked.
20 MCMS 2002 Migration Medium Pre-migration analysis: HostHeaderMapCheckTask is skipped because database check is blocked.
21 MCMS 2002 Migration Verbose Start Server check
22 MCMS 2002 Migration Verbose End Server check
23 MCMS 2002 Migration Verbose Start Server emptyness check
24 MCMS 2002 Migration Verbose End Server emptyness check
25 MCMS 2002 Migration Medium PreMigrationAnalyzer: Dry run starts
26 MCMS 2002 Migration Verbose CleanLockProcedure: start.
27 MCMS 2002 Migration High CleanLockProcedure: connection system lock is null
28 MCMS 2002 Migration Verbose Finished all tasks
29 MCMS 2002 Migration High PreMigrationAnalyzer ends with True
30 MCMS 2002 Migration Verbose Migration profile status is changed to AnalysisPassed
Specifically, the two High level alerts on lines 4 and 5 are reflected in the migration report as warnings when running Pre-migration Analysis or running the migration profile. In addition, two other warnings appear in the migration report indicating two tables containing data (LayoutProperty
and NodeLayout
) that should be empty. According to the documentation, warnings are not sufficient cause to stop migration from occurring. Other anomalies are on lines 7-20 indicating a series of tests that are skipped because database check is blocked.
The ULS doesn't give any additional warnings to indicate that the database check was blocked or exited in exceptional circumstances.
After switching the profile from pre-migration analysis to exporting, there is one medium level warning that LastChangeTime is not set or incorrect. (null)
. As with all the skipped test names and SQL table names from the warnings, the major search engines are unable (with the exception of LayoutProperty
) to find any reference to these objects or tests.
Finally, the section of the log indicating the actual live migration attempt is appended below:
01 MCMS 2002 Migration Medium LastChangeTime is not set or incorrect. (null)
02 MCMS 2002 Migration Verbose Set export lock
03 MCMS 2002 Migration Verbose CleanLockProcedure: start.
04 MCMS 2002 Migration Verbose CleanLockProcedure: end.
05 MCMS 2002 Migration Verbose Prepare for export
06 MCMS 2002 Migration Verbose Open connection...
07 MCMS 2002 Migration Verbose Create temporary stored procedures
08 MCMS 2002 Migration Verbose Create temporary tables...
09 MCMS 2002 Migration Verbose Initialize temporary tables...
10 MCMS 2002 Migration Verbose InitializeTemporaryTables: start
11 MCMS 2002 Migration Verbose Initialize export table...
12 MCMS 2002 Migration Verbose InitializeExportTable: start
13 MCMS 2002 Migration Verbose CleanLockProcedure: start.
14 MCMS 2002 Migration Verbose CleanLockProcedure: end.
15 MCMS 2002 Migration High Migration throws exception: Line 6: Incorrect syntax near ';'.. Stacktrace: at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.SharePoint.Publishing.Internal.Administration...
16 MCMS 2002 Migration High ....MigrationBatchCommand.ExecuteImmediate(String command) at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationBatchCommand.ExecuteWaitingCommands() at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationDBSerializer.SerializeSelectedExportObject(StringCollection objectAttribs) at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationDataAccess.InitializeExportTable(ScopeType scopeType) at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationDataAccess.InitializeTemporaryTables(DateTime lastChangeTime) at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationDataAccess.InitializeDatabase(DateTime lastChangeTime, Boolean isAnalysis, SqlConnection connection) at Microsoft.SharePoint.Publishing.Internal.Admin...
17 MCMS 2002 Migration High ...stration.MigrationDataAccess.InitializeDatabase(DateTime lastChangeTime, Boolean isAnalysis) at Microsoft.SharePoint.Publishing.Administration.ContentMigration.Export(MigrationDataAccess dataAccess) at Microsoft.SharePoint.Publishing.Administration.ContentMigration.MigrateInternal().
18 MCMS 2002 Migration Verbose MigrationProfile: GetInstance. Start.
19 MCMS 2002 Migration Verbose MigrationProfile: GetInstance. End.
20 MCMS 2002 Migration Verbose Migration profile status is changed to Failed
The stack trace of the failed parsing of the SQL command appear on lines 15-17. A cleaner version of the stack trace is appended below.
Full Stack Trace:
Migration throws exception: Line 6: Incorrect syntax near ';'.. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning( TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlCommand.RunExecuteNonQueryTds(String methodName, Boolean async) at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe) at System.Data.SqlClient.SqlCommand.ExecuteNonQuery() at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationBatchCommand .ExecuteImmediate(String command) at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationBatchCommand .ExecuteWaitingCommands() at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationDBSerializer .SerializeSelectedExportObject(StringCollection objectAttribs) at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationDataAccess .InitializeExportTable(ScopeType scopeType) at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationDataAccess .InitializeTemporaryTables(DateTime lastChangeTime) at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationDataAccess .InitializeDatabase(DateTime lastChangeTime, Boolean isAnalysis, SqlConnection connection) at Microsoft.SharePoint.Publishing.Internal.Administration.MigrationDataAccess .InitializeDatabase(DateTime lastChangeTime, Boolean isAnalysis) at Microsoft.SharePoint.Publishing.Administration.ContentMigration.Export (MigrationDataAccess dataAccess) at Microsoft.SharePoint.Publishing.Administration.ContentMigration .MigrateInternal().
None of this log information indicates the SQL command that is failing a parser check. I've checked the SQL servers hosting the source and destination databases for a trace of the query, but neither seems to have triggered the parse failure condition. That appears to have happened on the SharePoint server.
Are there any other locations I should investigate that might tell me where to find the source of the error?