Microsoft KB Archive/899027

= FIX: You receive an Error 4005 &quot;Timeout expired&quot; error message when you try to clear the revision history in Content Management Server 2002 =

Article ID: 899027

Article Last Modified on 6/1/2006

-

APPLIES TO


 * Microsoft Content Management Server 2002

-





SYMPTOMS
In Microsoft Content Management Server 2002, when you try to clear the revision history in Site Manager, the operation does not succeed. When this problem occurs, you receive the following error message:

Error: 4005

Description: The XML parser could not parse the tag it was given.

Severity: 5

Source: P:\NR\Shared\GrammarParserC\AEGrammarParser.cpp 313 Debug info: Extended error: [What='Offending SQL: {? = call PurgeRevisionsByDate(?)}; {call UpdateChangeTable };Timeout expired. '] [LCID='1024'] [SourceFile=''] [SourceFileLine='-1'] [DebugInfo='

Extra info:

Client Source: OEFFolders::timerPostMessage_Timer:PurgeRevisions

Recommended Action: The ODBC data source may be incorrectly configured, the database may not be running, or there may be incorrect data in the database.



CAUSE
When you click Clear Revision History on the Tools menu in Site Manager, the PurgeRevisionsByDate stored procedure is not completed, and a time-out condition occurs.



RESOLUTION
To resolve this problem, you must run a Transact-SQL script to replace the PurgeRevisionsByDate stored procedure with a new PurgeRevisionsByDate stored procedure. To do this, follow these steps:  Click Start, click All Programs, click Microsoft SQL Server, and then click Query Analyzer. In the Connect to SQL Server dialog box, enter your login credentials, and then click OK. On the toolbar, select your Content Management Server database in the Change database list.  In the Query window, paste the following Transact-SQL code sample. IF EXISTS (SELECT * FROM sysobjects WHERE type = 'P' AND name = 'PurgeRevisionsByDate') BEGIN PRINT 'Dropping Procedure PurgeRevisionsByDate' DROP Procedure  dbo.PurgeRevisionsByDate END

GO

PRINT 'Creating Procedure PurgeRevisionsByDate' GO

create procedure dbo.PurgeRevisionsByDate (       @RevisionDate datetime        ) with encryption as /**   @exception - @RevisionDate value is earlier than the last revision purge */   declare @LastPurgeDate datetime declare @SQL varchar(255)

set nocount on

/*Verify whether the RevisionDate value is earlier than the last revision purge.*/ select @LastPurgeDate = LastRevisionPurge from Utility

if @LastPurgeDate is not null and @LastPurgeDate >= @RevisionDate return 1   /*The RevisionDate value is earlier than the last revision purge.*/

create table #Revisions (       Id int not null    )

insert into #Revisions select ID from Node where Type != 256 AND ArchivedWhen <= @RevisionDate UNION Select ID From Node where Type = 256 AND NodeGUID not in    (select NodeGUID from NodeResource where NodeGUID is not null) AND ArchivedWhen <= @RevisionDate

DELETE FROM NodeProperty WHERE NodeId in (SELECT Id FROM #Revisions) DELETE FROM NodeRole WHERE NodeId in (SELECT Id FROM #Revisions) DELETE FROM NodeResource WHERE NodeId in (SELECT Id FROM #Revisions) DELETE FROM NodePlaceholderContent WHERE NodeId in (SELECT Id FROM #Revisions) DELETE FROM NodePlaceholder WHERE NodeId in (SELECT Id FROM #Revisions) DELETE FROM LayoutProperty WHERE NodeId in (SELECT Id FROM #Revisions) DELETE FROM NodeLayout WHERE NodeId in (SELECT Id FROM #Revisions) DELETE FROM UserRoleMember WHERE NodeId in (SELECT Id FROM #Revisions) DELETE FROM NodeLock WHERE NodeId in (SELECT Id FROM #Revisions) DELETE FROM Node WHERE Id in (SELECT Id FROM #Revisions)

DECLARE @dateGMT datetime, @dateCurrent datetime select @dateCurrent = GETDATE exec GetGMTTime @dateCurrent, @dateGMT out if @RevisionDate > @dateGMT set @RevisionDate = @dateGMT

if exists (select * from Utility ) update Utility set LastRevisionPurge = @RevisionDate else insert into Utility (LastRevisionPurge) values(@RevisionDate)

return 0 go

GRANT EXEC ON dbo.PurgeRevisionsByDate TO CMSSystem

GO

--exec PurgeRevisionsByDateDemkal '2005-07-06 02:00:18.273'  On the Query menu, click Execute. On the File menu, click Exit.</li></ol>

<div class="status_section">

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.

Additional query words: CMS2002

Keywords: kbbug kbfix kbqfe kbdatabase kbprb kbcontentmgtserv2002presp2fix kbhotfixserver KB899027

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.