SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 45633: Read Access Violation might be generated for PROC OLAP when there are many levels in a dimension with multiple hierarchies

DetailsHotfixAboutRate It

Beginning in SAS® 9.2, you might receive the following error for PROC OLAP when attempting to build a SAS OLAP cube from a star schema:

   ERROR:  Read Access Violation In Task [ OLAP ]
   Exception occurred at (58C38E4B)
   Task Traceback
   Address   Frame     (DBGHELP API Version 4.0 rev 5)
   58C38E4B  09C6EBFC  saspolap:mcn_main+0x27E4B

   NOTE: The SAS System stopped processing this step because of errors.

This error can be received when all of the following conditions are true.

  • At least one dimension in the cube has multiple hierarchies.
  • The dimension is loaded from a dimension table rather than from a detail table.
  • The multiple hierarchies in any one dimension do not have enough levels in common such that the sum of all common and uncommon levels exceeds the value of 19.

As an example, the following dimension definition meets the above criteria because the dimension contains more than one hierarchy, it is loaded from a dimension table, and the number of levels in that dimension is greater than 19. In this case, it has 20 levels.

Dimension X Hierarchies=( H1 H2 ) dimtable=lib.dimtableX; Hierarchy H1 Levels=( L1, L2,...L10 ); Hierarchy H2 Levels=( L11, L12,...L20 );

As another example, the following dimension also meets the criteria. It differs from the first example in that the hierarchies of this dimension share at least some levels, but not enough levels such that the total number of levels in the hierarchy exceeds 19.

Dimension X Hierarchies=( H1 H2 H3 ) dimtable=lib.dimtableX; Hierarchy H1 Levels=( L1, L2, ...L10, L12 ); Hierarchy H2 Levels=( L11, L12, ...L20 ); Hierarchy H3 Levels=( L21, L2, L13, L8 );

While it is true that you cannot have more than 19 levels in a given hierarchy, not including the ALL level, you can have more than 19 levels for the dimension, with a maximum of 258 levels between all dimensions for the entire cube.

PROC OLAP incorrectly assumes that the maximum number of distinct levels in any one dimension will never exceed 19. Due to a change in the way hierarchy members are represented internally starting with SAS 9.2, this assumption can result in unexpected results like the access violation.

For more information on sizing specifications for the structure of a SAS OLAP cube, see SAS OLAP Cube Size Specifications in the SAS 9.3 OLAP Server: User's Guide.

Click the Hot Fix tab in this note to access the hot fix for this issue.



Operating System and Release Information

Product FamilyProductSystemSAS Release
ReportedFixed*
SAS SystemSAS OLAP ServerMicrosoft® Windows® for x649.2 TS2M09.3 TS1M2
Microsoft Windows Server 2003 Datacenter Edition9.2 TS2M09.3 TS1M2
Microsoft Windows Server 2003 Enterprise Edition9.2 TS2M09.3 TS1M2
Microsoft Windows Server 2003 Standard Edition9.2 TS2M09.3 TS1M2
Microsoft Windows Server 2003 for x649.2 TS2M09.3 TS1M2
Microsoft Windows Server 2008 for x649.2 TS2M09.3 TS1M2
Microsoft Windows XP Professional9.2 TS2M09.3 TS1M2
Microsoft Windows XP 64-bit Edition9.2 TS2M09.3 TS1M2
Microsoft Windows Server 2003 Enterprise 64-bit Edition9.2 TS2M09.3 TS1M2
Microsoft Windows Server 2003 Datacenter 64-bit Edition9.2 TS2M09.3 TS1M2
Microsoft® Windows® for 64-Bit Itanium-based Systems9.2 TS2M09.3 TS1M2
z/OS9.2 TS2M09.3 TS1M2
Windows Vista9.2 TS2M09.3 TS1M2
Windows Vista for x649.2 TS2M09.3 TS1M2
64-bit Enabled AIX9.2 TS2M09.3 TS1M2
64-bit Enabled HP-UX9.2 TS2M09.3 TS1M2
64-bit Enabled Solaris9.2 TS2M09.3 TS1M2
HP-UX IPF9.2 TS2M09.3 TS1M2
Linux9.2 TS2M09.3 TS1M2
Linux for x649.2 TS2M09.3 TS1M2
OpenVMS on HP Integrity9.2 TS2M09.3 TS1M2
Solaris for x649.2 TS2M09.3 TS1M2
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.