SQL Server beim Abbrechen einer DB2-Abfrage möglicherweise Zugriffsverletzungen auftreten

Dieser Artikel hilft Ihnen, das Problem zu beheben, das auftritt, wenn ein Benutzer eine Abfrage eines verknüpften Servers für eine IBM DB2-Datenbank abbricht.

Ursprüngliche Produktversion:   Host Integration Server 2010
Ursprüngliche KB-Nummer:   2761993

Problembeschreibung

Stellen Sie sich folgendes Szenario vor:

  • Sie verfügen über einen verknüpften Server, der eine Verbindung mit einer IBM DB2-Datenbank mithilfe des OLE DB-Anbieters für DB2 herstellt.

  • Die DB2-Verbindungszeichenfolge enthält den Rowset Cache Size Parameter mit einem Wert ungleich Null (z. B. Rowset Cache Size=100 ).

Wenn ein Benutzer versucht, eine Abfrage abzubrechen, die derzeit über den verknüpften Server an die IBM DB2-Datenbank ausgeführt wird, meldet der SQL Server Prozess möglicherweise eine Zugriffsverletzung und erstellt eine Speicherabbilddatei.

Ursache

Das Problem tritt aufgrund eines Synchronisierungsproblems im Microsoft OLE DB-Anbieter für DB2 auf, wenn eine ausgeführte Abfrage abgebrochen wird, wenn das Rowset Cache Size Feature aktiviert ist.

Lösung

Ändern Sie die DB2-Verbindungszeichenfolge im verknüpften Server, um den Parameter einzuschließen: Rowset Cache Size=0

Der SQL Server Prozess muss nach dieser Änderung neu gestartet werden, um sicherzustellen, dass die neue Verbindungszeichenfolge vom DB2-Anbieter geladen wird.

Weitere Informationen

Der RowSet Cache Size Parameter weist den DB2-Datenanbieter an, Zeilen aus DB2 vorab abzurufen, während gleichzeitig Zeilen verarbeitet und an den Datenverbraucher zurückgegeben werden. Dieses Feature kann die Leistung bei schreibgeschützten Massenvorgängen auf Computern mit mehreren Prozessoren oder Kernen verbessern. Der Standardwert für diese Eigenschaft ist 0 (Rowset Cache Size=0), was angibt, dass das optionale Pre-Fetch-Feature "aus" ist.

Es wird nicht empfohlen, diesen Parameter (verwenden Sie einen Wert ungleich Null) für andere Szenarien als Massenlesevorgänge zu aktivieren, die ein hohes Leistungsniveau erfordern.