Notice: This website is an unofficial Microsoft Knowledge Base (hereinafter KB) archive and is intended to provide a reliable access to deleted content from Microsoft KB. All KB articles are owned by Microsoft Corporation. Read full disclaimer for more details.

FIX: The SQL Server process may generate an access error violation when you use the OLE DB provider for DB2 that is included in Host Integration Server 2004 or in Host Integration Server 2006 together with SQL Server


View products that this article applies to.

Symptoms

Consider the following scenario:
  • You use the Microsoft OLE DB provider for DB2 that is included in Microsoft Host Integration Server 2004 together with Microsoft SQL Server.
  • The OLE DB provider for DB2 issues a query to obtain index keys from a computer that is running IBM DB2 for z/OS.
  • The computer that is running IBM DB2 for z/OS contains duplicate index names in the SYSIBM.SYSKEYS view.
In this scenario, the SQL Server process may generate an access violation error.

Notes
  • IBM DB2 for z/OS was previously known as IBM DB2/MVS.
  • This issue also occurs in Microsoft Host Integration Server 2006.

↑ Back to the top


Cause

This problem occurs because the OLE DB provider for DB2 does not include the following clause when the OLE DB provider for DB2 issues a query to obtain the index keys from the computer that is running IBM DB2 for z/OS:
SYSIBM.SYSKEYS.IXCREATOR = SYSIBM.SYSINDEXES.CREATOR
If the query causes the DB2 database to return duplicate index names, SQL Server generates an access violation error.

↑ Back to the top


Resolution

Service pack information for Host Integration Server 2006

To resolve this problem, obtain the latest service pack for Host Integration Server 2006. For more information, click the following article number to view the article in the Microsoft Knowledge Base:
979497 How to obtain the latest Host Integration Server 2006 service pack

Hotfix information

A supported hotfix is available from Microsoft. However, this hotfix is intended to correct only the problem that is described in this article. Apply this hotfix only to systems that are experiencing this specific problem. This hotfix might receive additional testing. Therefore, if you are not severely affected by this problem, we recommend that you wait for the next software update that contains this hotfix.

If the hotfix is available for download, there is a "Hotfix download available" section at the top of this Knowledge Base article. If this section does not appear, contact Microsoft Customer Service and Support to obtain the hotfix.

Note If additional issues occur or if any troubleshooting is required, you might have to create a separate service request. The usual support costs will apply to additional support questions and issues that do not qualify for this specific hotfix. For a complete list of Microsoft Customer Service and Support telephone numbers or to create a separate service request, visit the following Microsoft Web site: Note The "Hotfix download available" form displays the languages for which the hotfix is available. If you do not see your language, it is because a hotfix is not available for that language.

File information

The English version of this hotfix has the file attributes (or later file attributes) that are listed in the following table. The dates and times for these files are listed in Coordinated Universal Time (UTC). When you view the file information, it is converted to local time. To find the difference between UTC and local time, use the Time Zone tab in the Date and Time item in Control Panel.
File nameFile versionFile sizeDateTimePlatform
Convertprimex.dll6.0.2098.084,84013-Jul-200718:39x86
Db2oledb.dll6.0.2098.0501,08813-Jul-200718:39x86
Dcgen.dll6.0.2098.0109,40013-Jul-200718:39x86
Ddmstr.dll6.0.2098.053,59213-Jul-200718:39x86
Dpl1.dll6.0.2098.030,04013-Jul-200718:39x86
Drdaresync.exe6.0.2098.0346,97613-Jul-200718:39x86
Hipobjects.dll6.0.2098.01,069,92013-Jul-200718:39x86
Microsoft.hostintegration.dataaccesslibrary.dll6.0.2098.095,65613-Jul-200718:39x86
Microsoft.hostintegration.dataaccesstool.exe6.0.2098.02,712,99213-Jul-200718:39x86
Microsoft.hostintegration.msdb2client.dll6.0.2098.0124,31213-Jul-200718:39x86
Mseidb2c.dll6.0.2098.081,24813-Jul-200718:39x86
Mseidb2d.dll6.0.2098.0444,76813-Jul-200718:39x86
Mseidrda.dll6.0.2098.0709,98413-Jul-200718:39x86
Snanls.dll6.0.2098.087,38413-Jul-200718:39x86
Sysctblj.exe6.0.2098.040,28813-Jul-200718:39x86
Sysctblk.exe6.0.2098.039,26413-Jul-200718:39x86
Sysctbls.exe6.0.2098.039,26413-Jul-200718:39x86
Sysctblt.exe6.0.2098.039,26413-Jul-200718:39x86
Tagen.dll6.0.2098.0105,81613-Jul-200718:39x86
Tranlu62.dll6.0.2098.063,32813-Jul-200718:39x86
Trantcp.dll6.0.2098.0114,52013-Jul-200718:39x86
Trnsdt.dll6.0.2098.020,31213-Jul-200718:39x86
Trnsdtj.dll6.0.2098.017,24013-Jul-200718:39x86
Trnsdtk.dll6.0.2098.016,21613-Jul-200718:39x86
Trnsdts.dll6.0.2098.015,70413-Jul-200718:39x86
Trnsdtt.dll6.0.2098.016,21613-Jul-200718:39x86

↑ Back to the top


Status

Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the "Applies to" section.

↑ Back to the top


More information

After you apply this update, the OLE DB provider for DB2 issues a query similar to the following to obtain index information from a system that is running IBM DB2 for z/OS.
SELECT 	
	VARCHAR(RTRIM(T1.TBCREATOR), 128) as TABLE_QUALIFIER
	, VARCHAR(RTRIM(T1.TBNAME), 128) as TABLE_NAME
	, smallint( CASE WHEN T1.UNIQUERULE = 'U' THEN 1 ELSE 2 END) AS NON_UNIQUE
	, VARCHAR(RTRIM(T1.INDEXSPACE), 128) as INDEX_QUALIFIER
	, VARCHAR(RTRIM(T1.NAME), 128) as INDEX_NAME
	, T2.COLSEQ as SEQ_IN_INDEX
	, VARCHAR(RTRIM(T2.COLNAME), 128) as COLUMN_NAME
	, T2.ORDERING as COLLATION
	, T2.COLNO as ORDINAL_IN_BASE 
FROM 
	SYSIBM.SYSINDEXES T1
	, SYSIBM.SYSKEYS T2 
WHERE 
	SYSIBM.SYSKEYS.IXNAME = SYSIBM.SYSINDEXES.NAME 
	AND SYSIBM.SYSKEYS.IXCREATOR = SYSIBM.SYSINDEXES.CREATOR
Until you apply this update, the SYSIBM.SYSKEYS.IXCREATOR = SYSIBM.SYSINDEXES.CREATOR clause is not included in the query.

The following tables give examples of query results before and after you apply this update.

Query results before you apply the update
TABLE_QUALIFIERTABLE_NAMENON_UNIQUEINDEX_QUALIFIERINDEX_NAME
DB2USER1TABLE11INDEX1INDEX1
DB2USER1TABLE11INDEX1INDEX1
Query results after you apply the update
IXCREATORTABLE_QUALIFIERTABLE_NAMENON_UNIQUEINDEX_QUALIFIERINDEX_NAME
TESTUSERDB2USER1TABLE11INDEX1INDEX1
DB2USER1DB2USER1TABLE11INDEX1INDEX1
After you apply this update, the data that the OLE DB provider for DB2 returns to SQL Server lets SQL Server determine whether the index names are duplicates. SQL Server determines this based on the different values in the IXCREATOR column.

For more information about software update terminology, click the following article number to view the article in the Microsoft Knowledge Base:
824684 Description of the standard terminology that is used to describe Microsoft software updates
The third-party products that this article discusses are manufactured by companies that are independent of Microsoft. Microsoft makes no warranty, implied or otherwise, about the performance or reliability of these products.

↑ Back to the top


Keywords: KB939965, kbfix, kbpubtypekc, kbqfe, kbhotfixserver, kbautohotfix

↑ Back to the top

Article Info
Article ID : 939965
Revision : 2
Created on : 2/4/2010
Published on : 2/4/2010
Exists online : False
Views : 437