Feedback
Did this article resolve your question/issue?

   

Article

Error 7311 occurs while using the COnnect for ODBC DB2 driver to display DB2 tables in SQL Server Enterprise Manager

« Go Back

Information

 
TitleError 7311 occurs while using the COnnect for ODBC DB2 driver to display DB2 tables in SQL Server Enterprise Manager
URL Name3479
Article Number000123734
EnvironmentProduct: Connect for ODBC DB2 driver
Version: 7.0 and later
OS: Windows
Database: DB2
Application: SQL Server Enterprise Manager
Question/Problem Description
When displaying the tables found in DB2 using MS SQL Server Enterprise Manager to a DB2 Linked Server,  the error displays.
Steps to Reproduce
Clarifying Information
Error MessageError 7311:Could not obtain the schema rowset for OLEDB provider 'UNKNOWN', The provider supports the interface, but returns a failure code when it is used.
OLE DB error trace [OLE/DB Provider 'UNKNOWN' IDBSchemaRowset::GetRowset returned 0x80040e21: ]
Defect Number
Enhancement Number
Cause
MS SQL Server uses a proxy/stub dll, msdaps.dll, to marshall oledb interfaces between processes/apartments. These errors from the 'UNKNOWN' provider come from msdaps.dll. If the OLE DB provider is invoked out of process or is marked as apartment model then this stub gets used. By default if the OLE DB provider is a Microsoft provider then SQL Server invokes it in process and this proxy is not used. Checking the Allow InProcess box when using the DataDirect driver ensures that this stub dll is not used and so avoids this error.
Resolution

This error is related to the options selected when the linked server is created.  To prevent this error:

1. Recreate the linked server
2. Check the 'Allow InProcess' box when picking the provider during the linked server creation process.
3. Once the linked server is created, the 'Provider Options' button becomes disabled (greyed out) 

Workaround
Notes
Last Modified Date9/13/2015 3:58 AM
Attachment 
Files
Disclaimer The origins of the information on this site may be internal or external to Progress Software Corporation (“Progress”). Progress Software Corporation makes all reasonable efforts to verify this information. However, the information provided is for your information only. Progress Software Corporation makes no explicit or implied claims to the validity of this information.

Any sample code provided on this site is not supported under any Progress support program or service. The sample code is provided on an "AS IS" basis. Progress makes no warranties, express or implied, and disclaims all implied warranties including, without limitation, the implied warranties of merchantability or of fitness for a particular purpose. The entire risk arising out of the use or performance of the sample code is borne by the user. In no event shall Progress, its employees, or anyone else involved in the creation, production, or delivery of the code be liable for any damages whatsoever (including, without limitation, damages for loss of business profits, business interruption, loss of business information, or other pecuniary loss) arising out of the use of or inability to use the sample code, even if Progress has been advised of the possibility of such damages.