xmlaclient.Discover (MDSCHEMA_MODULES, ...) Исключение из-за недостатка памяти в системе - PullRequest
0 голосов
/ 14 июля 2010

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

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

1 Ответ

0 голосов
/ 20 июля 2010

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

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

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

Нихилу

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...