xmlaclient.Discover (MDSCHEMA_MODULES,) Системное исключение нехватки памяти

Когда я пытаюсь углубиться в куб в нашем клиентском приложении, я использую метод xmlaclient.Discover для обнаружения метаданных SSAS. Когда я углубился примерно до 7-го уровня, я получаю исключение системы из-за нехватки памяти. Трассировка стека приведена ниже: она работает на сервере Windows 2008, сервере ssas 2008, а приложение находится на машине с Windows 7 (все 64-разрядные), и обе машины имеют 4 ГБ оперативной памяти.

StackTrace " в System.String.GetStringForStringBuilder (значение строки, Int32 startIndex, длина Int32, емкость Int32)\r\n в System.Text.StringBuilder.GetNewString (String currentString, Int32 requiredLength)\r\n в System.Text.StringBuilder .Append(строковое значение)\r\n в System.IO.StringWriter.Write(строковое значение)\r\n в System.Xml.XmlTextWriter.InternalWriteEndElement(логическое значение longFormat)\r\n в System.Xml.XmlTextWriter.WriteFullEndElement ()\r\n в System.Xml.XmlReader.WriteNode(XmlTextWriter xtw, Boolean defattr)\r\n в System.Xml.XmlReader.ReadInnerXml()\r\n в Microsoft.AnalysisServices.Xmla.XmlaReader.ReadInnerXml( )\r\n в Microsoft.AnalysisServices.Xmla.XmlaClient.SendMessageAndReturnResult(String& result, Boolean skipResult)\r\n at Microsoft.AnalysisServices.Xmla.XmlaClient.Discover(String requestType, String ограничения, String properties, String& result, Boolean skipResult, логические ограниченияXmlIsComplete, Boo Lean propertiesXmlIsComplete)\r\n в Meridium.XMLA.Client.XmlaClientCall.XmlaDiscover(String Discover_type, String ограничения, String properties, Boolean isRestrictionsComplete, Boolean isPropertiesComplete) в C:\MyData\Projects\APM V3\Source\Meridium\Metrics\ XMLA\Client\XmlaClientCall.cs:строка 44" строка


person Nikhil    schedule 13.07.2010    source источник


Ответы (1)


Найдены проблема и решение: сборка Microsoft.AnalysisServices.Xmla.dll недокументирована и не поддерживается.

Поддерживаемый метод для этого — использовать сборку Microsoft.AnalysisServices.AdomdClient.dll с помощью метода GetSchemaDataSet и передать AdomdSchemaGuid.Members в качестве первого параметра и соответствующий объект ограничения в качестве второго параметра.

При использовании более раннего варианта нам необходимо создать ограничение уникального имени члена и ограничение tree_op, чтобы предотвратить дальнейший рост объема памяти.

Нихил

person Nikhil    schedule 19.07.2010