FIX: An Analysis Services server appears to stop responding when a complex query that takes a long time to complete is run against a SQL Server 2000 Analysis Services server (872934)



The information in this article applies to:

  • Microsoft SQL Server 2000 Analysis Services

Bug #: 14363 (Plato7X)


Important This article contains information about modifying the registry. Before you modify the registry, make sure to back it up and make sure that you understand how to restore the registry if a problem occurs. For information about how to back up, restore, and edit the registry, click the following article number to view the article in the Microsoft Knowledge Base:

256986 Description of the Microsoft Windows Registry

SUMMARY

This article describes the following about this hotfix release:
  • The issues that are fixed by this hotfix package.
  • The prerequisites for installing the hotfix package.
  • Whether you must restart your computer after you install the hotfix package.
  • Whether the hotfix package is replaced by any other hotfix package.
  • Whether you must make any registry changes.
  • The files that are contained in the hotfix package.
back to the top

SYMPTOMS

When a complex query that takes long time to complete is run against a Microsoft SQL Server 2000 Analysis Services server, and you try to connect to the Analysis Services server or you try to run a query against an Analysis Services cube, you may notice that the Analysis Services server appears to stop responding (hang). Additionally, you may notice a timeout error.

This problem causes a long delay for the processing of an object like a cube, a dimension, or a partition in the Analysis Services server to complete.

For a list of previous hotfixes, see the "Microsoft SQL Server 2000 post-Service Pack 3 or Microsoft SQL Server 2000 post-Service Pack 3a hotfixes" section in the following Microsoft Knowledge Base article:

290211 How to obtain the most recent SQL Server 2000 service pack

back to the top

CAUSE

When Analysis Services processes an object in an Analysis Services server, the server creates a copy of the object that is being processed and then operates on the copy until the Analysis Services server receives a commit request. When a commit request is received, the Analysis Services server obtains a write lock on the objects that are processed in the current transaction and then replaces those objects with the corresponding updated versions of the objects. If queries are running against one or more of the objects that are to be replaced, the write lock request waits for the existing read locks that are held by the queries. Any subsequent read lock requests that the Analysis Services server receives for the objects that are in the commit request are queued behind the waiting write lock request for the commit operation. This behavior causes the processing operation to wait until the query processing is complete. Therefore, you notice the behavior that is mentioned in the "Symptoms" section.

back to the top

RESOLUTION

Warning If you use Registry Editor incorrectly, you may cause serious problems that may require you to reinstall your operating system. Microsoft cannot guarantee that you can solve problems that result from using Registry Editor incorrectly. Use Registry Editor at your own risk.

To resolve the problem, follow these steps:
  1. Apply the hotfix that is described in the following Microsoft Knowledge Base article:

    827899 FIX: Prevent Analysis Services processing requests from blocking queries

    This hotfix is used to interrupt the pending processing operation after a specified time. This hotfix introduces a registry setting that you can use to enable the commit request. You can also use the registry setting to set the wait time for the commit request. By using this registry value, an Analysis Services administrator can determine how many seconds a commit request will wait for the write lock to be obtained before the commit request rolls back the processing operation.
  2. Apply the hotfix that is mentioned in this article. For more information, see the "Hotfix information" section.
  3. Add the ForceCommitTimeout DWORD registry value to the following registry subkey:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OLAP Server\CurrentVersion

    If the value of the ForceCommitTimeout DWORD registry value is not set to 0 (zero), Analysis Services cancels all queries that are run against the Analysis Services server regardless of the Analysis Services database on which these queries are running. In this scenario, the Microsoft Decision Support Objects (DSO) operation does not wait to obtain a write lock.

    By using this registry value, an Analysis Services administrator can determine how many seconds a commit request must wait before all the running queries are canceled. This registry value is expressed in seconds.
back to the top

Service pack information

To resolve this problem, obtain the latest service pack for Microsoft SQL Server 2000. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

290211 How to obtain the latest SQL Server 2000 service pack

Hotfix information

Prerequisites

This hotfix requires Microsoft SQL Server 2000 Analysis Services Service Pack 3 (SP3). For additional information about how to obtain SQL Server 2000 Analysis Services Service Pack 3, click the following article number to view the article in the Microsoft Knowledge Base:

290211 How to obtain the latest SQL Server 2000 Service Pack

back to the top

Restart information

You do not have to restart your computer after you apply this hotfix.

Note You must restart the MSSQLServerOLAPService service after you apply this hotfix.

back to the top

Hotfix file information

This hotfix contains only those files that are required to correct the issues that this article lists. This hotfix may not contain all the files that you must have to fully update a product to the latest build.

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in coordinated universal time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time tool in Control Panel.
   Date         Time   Version    Size       File name
   -------------------------------------------------------
   06-Apr-2004  07:56                18,800  Msmd.h
   29-Jul-2004  13:31  8.0.966.0    221,760  Msmdcb80.dll     
   29-Jul-2004  13:31  8.0.0.966  4,063,808  Msmddo80.dll     
   29-Jul-2004  13:31  8.0.966.0  1,036,864  Msmdgd80.dll     
   29-Jul-2004  13:31  8.0.966.0    172,608  Msmdpump.dll     
   29-Jul-2004  07:16  8.0.966.0    446,524  Msmdsgn.rll
   29-Jul-2004  13:31  8.0.0.966  9,642,564  Msmdsgn80.dll    
   29-Jul-2004  13:31  8.0.966.0  1,843,780  Msmdsrv.exe      
   29-Jul-2004  13:31  8.0.966.0  2,085,456  Msolap80.dll     
   29-Jul-2004  06:57  8.0.966.0    213,068  Msolap80.rll
Note Because of file dependencies, the most recent hotfix that contains these files may also contain additional files.back to the top

STATUS

Microsoft has confirmed that this is a bug in the Microsoft products that are listed in the "Applies to" section.

This problem was first corrected in Microsoft SQL Server 2000 Service Pack 4.

back to the top

MORE INFORMATION

For additional information about the naming schema for Microsoft SQL Server updates, click the following article number to view the article in the Microsoft Knowledge Base:

822499 New naming schema for Microsoft SQL Server software update packages

For additional information about the terminology that Microsoft uses when orrecting software after it is released, click the following article number to view the article in the Microsoft Knowledge Base:

824684 Description of the standard terminology that is used to describe Microsoft software updates

back to the top

Modification Type:MinorLast Reviewed:6/1/2006
Keywords:kbQuery kbconnectivity kbSQLServ2000preSP4fix kbbug kbfix kbHotfixServer kbQFE KB872934 kbAudDeveloper