powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed.
6 сообщений из 6, страница 1 из 1
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed.
    #33633083
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую ADOMD.NET 8.0 с AS2000. Делаю ExecuteXmlReader(). Летит вот такой екзепшн. Почему он летит - загадка. Если делать то же самое с AS2005 - все классно работает.

Поиск в гугле результатов не дал - вопрос подымается, но ответа не нахожу.

Уважаемые господа знатоки, подскажите пожалуйста, в чем может быть дело?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
[TYPE]: System.InvalidCastException
[MESSAGE]: QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed.
[STACK TRACE]:
   at Microsoft.AnalysisServices.AdomdClient.XASC.Microsoft.AnalysisServices.AdomdClient.IXASC.ProcessRequest(Object RequestStream)

   at Microsoft.AnalysisServices.AdomdClient.StreamInteropHelper.ProcessRequest(XASC comClass, Stream requestStream)

   at Microsoft.AnalysisServices.AdomdClient.IXMLAStream.WriteEndOfMessage()

   at Microsoft.AnalysisServices.AdomdClient.XmlaClient.EndRequest()

   at Microsoft.AnalysisServices.AdomdClient.XmlaClient.SendMessage(Boolean endReceivalIfException, Boolean readSession, Boolean readNamespaceCompatibility)

   at Microsoft.AnalysisServices.AdomdClient.XmlaClient.SendMessage(Boolean endReceivalIfException)

   at Microsoft.AnalysisServices.AdomdClient.XmlaClient.SendMessage()

   at Microsoft.AnalysisServices.AdomdClient.XmlaClient.ExecuteStatement(String statement, IDictionary connectionProperties, IDictionary commandProperties, IDataParameterCollection parameters, Boolean isMdx)

   at Microsoft.AnalysisServices.AdomdClient.XmlaClientProvider.Microsoft.AnalysisServices.AdomdClient.IExecuteProvider.Execute(ICommandContentProvider contentProvider, AdomdPropertyCollection commandProperties, IDataParameterCollection parameters)

   at Microsoft.AnalysisServices.AdomdClient.AdomdCommand.ExecuteXmlReader()

   at OlapFramework.Olap.DataPortal.OlapDataPortalExecuterLocal.MDXRun(AdomdConnection aConnection, String aMDX) in d:\projects\framework\projects\olapframework\olap\dataportal\olapdataportalexecuterlocal.cs:line  211 
...
Рейтинг: 0 / 0
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed.
    #33633618
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В качестве теста сделал такое: установил Win2000 Server + SP4 на VMWare. Туда поставил .NET 1.1 и ADOMD.NET 8.0, скопировал на виртуальную машину свою прогу.

На чистой виртуальной машине вылетает тот же самый екзепшн.

Самое странное в этом то, что
а) если проходится дебаггером по коду - все работает классно, никаких проблем. проблемы только в рантайме. то есть, найти в чем же проблема невозможно.
б) проблема возникает не постоянно, а в 80% запросов. Иногда запуск ExecuteXmlReader() успешно срабатывает.
в) если написать тестовую консольную апликацию, которая делает все то же самое - в ней все работает. Что ее отличает от нашей апликации где вылазит глюк - это то, что используется Windows Forms, ADO.NET, библиотеки DevExpress, и пр. Очень сомневаюсь, что что-то из этого имеет какое либо отношение к взаимодействию с COM-сервером из msadomdx.dll и глюкам QueryInterface

Результат абсолютно одинаковый вне зависимости от того, использую ли я родной adomdclient, или же тот, который я дизассемблировал.

Когдато уважаемый г-н backfire говорил, что коннектится к AS2000 из-под ADOMD.NET - это "нехороший" способ. Я ему не поверил. Но вот теперь чем дальше, тем больше начинаю ему верить, ибо уже второй день пропал зря...
...
Рейтинг: 0 / 0
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed.
    #33633794
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашел еще одну важную деталь. Registry Monitor показывает, что апликация пробует достучатся к ключу HKCU\Interface\{08549D4C-E2F3-4631-8D63-E7A048F43E4C}, который в реестре отсутствует (это как раз и есть GUID для IXASC).
...
Рейтинг: 0 / 0
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed.
    #33634230
Andriy7777
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А Вы, случайно, не создаете Connection объект на одном потоке (thread), а потом передаете его в другой поток для вызова ExecuteXXX?

Отличие console приложения от WinForms - это выполнение пользовательского интерфейса в Single Thread Apartment потоке. Любой другой поток будет использовать другой apartment.

Если да, то не делайте этого. Для каждого потока открывайте свое соединение (Connection). Для AS2005 вы можете передавать Connection между потоками, но только один поток может выполнять запрос, и нет никакой синхронизации (locks).
...
Рейтинг: 0 / 0
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed.
    #33634283
Владимир Штепа
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andriy7777А Вы, случайно, не создаете Connection объект на одном потоке (thread), а потом передаете его в другой поток для вызова ExecuteXXX?

Отличие console приложения от WinForms - это выполнение пользовательского интерфейса в Single Thread Apartment потоке. Любой другой поток будет использовать другой apartment.

Если да, то не делайте этого. Для каждого потока открывайте свое соединение (Connection). Для AS2005 вы можете передавать Connection между потоками, но только один поток может выполнять запрос, и нет никакой синхронизации (locks).

Single Thread Apartment или нет явно определяется аттрибутом и ничем другим.

Locks есть, если какой то поток послал запрос на сервер, то соединение залочено, пока не будет прочитан ответ.
...
Рейтинг: 0 / 0
QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed.
    #33635324
Ihor Bobak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andriy7777А Вы, случайно, не создаете Connection объект на одном потоке (thread), а потом передаете его в другой поток для вызова ExecuteXXX?
Именно так и есть. Я это уже установил вчера в 3-й ночи. Коллега день назад реализовал функционал для слежения за статусом закачки данных-результатов MDX запроса, ну а там многопоточность, + коннекшн-пул, в котором коннект к AS2000 (и соответсвтенно COM XASC object) был создан в другом потоке. Отсюда ноги и растут.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / QueryInterface for interface Microsoft.AnalysisServices.AdomdClient.IXASC failed.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]