xmlaclient.Discover(MDSCHEMA_MODULES,...)系统内存不足异常

时间:2010-07-13 20:47:49

标签: .net exception

当我尝试在客户端应用程序中深入查看多维数据集时,我使用xmlaclient.Discover方法来发现SSAS元数据。当我钻到大约7级时,我得到一个系统内存异常。堆栈跟踪如下所示 - 这是在Windows 2008服务器,2008 ssas服务器上运行,应用程序在Windows 7机器上(全部64位),两台机器都有4GB的Ram。

  

StackTrace“at   System.String.GetStringForStringBuilder(字符串   value,Int32 startIndex,Int32 length,   Int32容量)\ r \ n at   System.Text.StringBuilder.GetNewString(字符串   currentString,Int32   requiredLength)\ r \ n at   System.Text.StringBuilder.Append(字符串   价值)\ r \ n at   System.IO.StringWriter.Write(字符串   价值)\ r \ n at   System.Xml.XmlTextWriter.InternalWriteEndElement(布尔   longFormat)\ r \ n at   System.Xml.XmlTextWriter.WriteFullEndElement(个)\ r \ n   在   System.Xml.XmlReader.WriteNode(XmlTextWriter的   xtw,Boolean defattr)\ r \ n at   System.Xml.XmlReader.ReadInnerXml(个)\ r \ n   在   Microsoft.AnalysisServices.Xmla.XmlaReader.ReadInnerXml(个)\ r \ n   在   Microsoft.AnalysisServices.Xmla.XmlaClient.SendMessageAndReturnResult(字符串&安培;   结果,布尔值skipResult)\ r \ n at   Microsoft.AnalysisServices.Xmla.XmlaClient.Discover(字符串   requestType,字符串限制,   字符串属性,String&结果,   Boolean skipResult,Boolean   restrictionsXmlIsComplete,Boolean   propertiesXmlIsComplete)\ r \ n at   Meridium.XMLA.Client.XmlaClientCall.XmlaDiscover(字符串   Discover_type,字符串限制,   字符串属性,布尔值   isRestrictionsComplete,Boolean   isPropertiesComplete)in   C:\ MyData的\项目\ APM   V3 \来源\ Meridium的\指标\ XMLA \客户\ XmlaClientCall.cs:行   44“字符串

1 个答案:

答案 0 :(得分:0)

发现问题和解决方案:Microsoft.AnalysisServices.Xmla.dll程序集未记录不受支持。

支持的方法是使用GetSchemaDataSet方法使用Microsoft.AnalysisServices.AdomdClient.dll程序集,并将AdomdSchemaGuid.Members作为第一个参数并将相应的限制对象作为第二个参数传递。

如果使用前面的那个,我们需要创建成员唯一名称限制和tree_op限制,以防止内存占用量进一步增长。

尼基尔