|
Home > Archive > BizTalk Server Applications Integration > July 2005 > IUnknown::QueryInterface returned 0x80004002
You are viewing an archived Text-only version of the thread.
To view this thread in it's original format and/or if you want to reply to
this thread please [click here]
| Author |
IUnknown::QueryInterface returned 0x80004002
|
|
|
| This appears to be a tough one. I have spent 2 days googling this problem
and have found 2 people who have encountered it but didn't appear to have
found a solution.
Here is what I am doing: I am using biztalk 2004 to query a SQL server at
regular intervals (no prob). In SQL Server, I have a view that queries
through to Active Directory. The query looks like this:
Select CN, mail FROM ''LDAP://PDC01/ou=DevServer,DC=DevGroup'' WHERE
objectClass = ''User'' AND objectClass <> ''Computer''
Neither the query or SQL are the problem because I can run it via Query
Analyzer without any problems. I even put the query in a SP and ran it via
query analyzer, vb and c#. No prob.
When BT hits the SQL connector to run the query, this is the error I get:
----------------------
MSSQLError HRMSSQLError HResult="0x80040e14"
Source="Microsoft OLE DB Provider for SQL Server"
Description="The requested operation could not be performed because the OLE
DB provider 'ADsDSOObject' does not support the required transaction
interface.
HResult="0x80040e14"
Source="Microsoft OLE DB Provider for SQL Server"
Description="OLE DB error trace [OLE/DB Provider 'ADsDSOObject'
IUnknown::QueryInterface returned 0x80004002]."
---------------------
Now, initially, I thought this was not an ADSI problem. There are several
messages in there that suggest OLEDB. However, the last line of the error
message says the Provider ADsDSOObject had an error during
IUnknown::QueryInterface. Every COM object is required to support the
IUnknown QueryInterface method (by the fundamental definition of COM). It
is usually used for late binding.
So, this means the COM interface for the OLEDB provider for ADS seems to be
the source of the error.
Has anyone else seen this error or know of a solution, patch or workaround?
Thanks
- SBFF -
| |
| Erland Sommarskog 2005-07-21, 5:52 pm |
| SBFF (s_pamhead@hotmail.com) writes:
> When BT hits the SQL connector to run the query, this is the error I get:
> ----------------------
> MSSQLError HRMSSQLError HResult="0x80040e14"
> Source="Microsoft OLE DB Provider for SQL Server"
> Description="The requested operation could not be performed because the
> OLE
> DB provider 'ADsDSOObject' does not support the required transaction
> interface.
> HResult="0x80040e14"
> Source="Microsoft OLE DB Provider for SQL Server"
> Description="OLE DB error trace [OLE/DB Provider 'ADsDSOObject'
> IUnknown::QueryInterface returned 0x80004002]."
> ---------------------
> Now, initially, I thought this was not an ADSI problem. There are several
> messages in there that suggest OLEDB. However, the last line of the error
> message says the Provider ADsDSOObject had an error during
> IUnknown::QueryInterface. Every COM object is required to support the
> IUnknown QueryInterface method (by the fundamental definition of COM). It
> is usually used for late binding.
> So, this means the COM interface for the OLEDB provider for ADS seems to
> be the source of the error.
My interpretation is that when BizTalk runs the query there is a transaction
active, and therefore SQL Server tries to get Active Directory into
that transaction, but presumably AD does not support distributed
transactions.
The fact that QueryInterface fails, I would interpret as that SQL Server
is try to get a pointer to an interface not supported by AD.
--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se
Books Online for SQL Server SP3 at
http://www.microsoft.com/sql/techin.../2000/books.asp
|
|
|
|
|