FIX: The UserName function returns NULL or an empty string in an MDX query or in an MDX expression (834844)



The information in this article applies to:

  • Microsoft SQL Server 2000 Analysis Services
  • Microsoft SQL Server 2000 Analysis Services 64 bit

Bug #: 14309 (Plato7x)
Microsoft SQL Server 2000 fixes are distributed as one downloadable file. Because the fixes are cumulative, each new release contains all the hotfixes and all the security fixes that were included with the previous SQL Server 2000 fix release.

SYMPTOMS

When you use the UserName function in a Multidimensional Expressions (MDX) query or in an MDX expression, the value that is returned may be NULL or an empty string, instead of the expected domain and username. This problem occurs when both of the following conditions are true:
  • You connect to Microsoft SQL Server 2000 Analysis Services through HTTP.
  • The Analysis Services service and the Microsoft Internet Information Services (IIS) service that hosts the Msolap.asp page reside on different servers.

RESOLUTION

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


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.

SQL Server 2000 Analysis Services

Date         Time   Version             Size   File name
---------------------------------------------------------------
08-Apr-2004  15:55  8.0.931.0         221,760  Msmdcb80.dll     
08-Apr-2004  15:56  8.0.0.931       4,063,808  Msmddo80.dll     
08-Apr-2004  15:48  8.0.931.0       1,032,768  Msmdgd80.dll     
08-Apr-2004  15:44  8.0.931.0         172,608  Msmdpump.dll     
08-Apr-2004  16:08  8.0.0.931       9,638,468  Msmdsgn80.dll    
08-Apr-2004  16:30  8.0.931.0       1,835,588  Msmdsrv.exe      
08-Apr-2004  16:10  8.0.931.0       2,081,360  Msolap80.dll     
08-Apr-2004  02:09  8.0.931.0         213,068  Msolap80.rll

SQL Server 2000 Analysis Services 64-bit

Date         Time   Version            Size    File name
--------------------------------------------------------------
08-Apr-2004  18:24  8.0.931.0       5,492,736  Msmdcb80.dll
08-Apr-2004  18:24  8.0.931.0       5,801,984  Msmdgd80.dll
08-Apr-2004  18:24  8.0.931.0       5,130,752  Msmdpump.dll
08-Apr-2004  18:24  8.0.931.0       5,993,472  Msmdsrv.exe
08-Apr-2004  18:24  8.0.931.0       6,671,360  Msolap80.dll
08-Apr-2004  16:44  8.0.931.0         201,216  Msolap80.rll
Note Because of file dependencies, the most recent hotfix or feature that contains these files may also contain additional files.

STATUS

Microsoft has confirmed that this is a problem 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.

MORE INFORMATION

This hotfix includes a fix that addressed an issue that causes the corruption of dimensions when a Lazy Aggregation processing thread is executed after it processes dimensions that are used in virtual dimensions. Because of that fix, if you incrementally process a virtual dimension, a lazy aggregation processing thread executes. While the lazy aggregation thread executes, the aggregations for that dimension are deleted from each partition.

The lazy aggregation thread executes as a low priority background thread and rebuilds the aggregations for the dimension in each partition. While the lazy aggregation thread executes to rebuild the aggregations, MDX query execution may be significantly slower. The degradation in query performance occurs because of the lack of aggregations. The lack of aggregators causes the server to read values from the leaf level of each partition.

After the lazy aggregation thread finishes rebuilding the aggregations for each partition, you no longer see the degradation in query performance. The query performance degradation during lazy aggregation may be unacceptable in certain situations, such as in high-demand cubes in enterprise applications. If applying this hotfix causes unacceptable query performance degradation, we recommend that you consider the following alternatives during lazy aggregation:
  • Set the DSOCommitMode registry value to DSOCommitModeNonLazyIndexing. For more information, click the following article number to view the article in the Microsoft Knowledge Base:

    325289 FIX: New functionality for incremental update of changing dimensions

    This option can increase memory and disk usage on the Analysis server. Memory usage increases because processing the affected cubes requires additional memory for the processing buffer to recalculate the cube aggregates. Disk usage increases to approximately double the cumulative size of all affected cubes because the new copies of the data and aggregates are created and because the original data is kept for current user queries. Also, the total elapsed time to complete transactions may be considerably longer than with the conventional lazy aggregation process.
  • Set the Virtual property and the Changing property of any virtual dimensions to False.

    Note If you change these properties, you must fully re-process any cubes that use the changed dimension.
For more information, 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


Modification Type:MinorLast Reviewed:10/25/2005
Keywords:kbHotfixServer kbQFE kbQFE kbSQLServ2000preSP4fix kbfix kbbug KB834844 kbAudDeveloper