Wenn Sie ein Dateihandle für FileStream Zugriff in einer SQL Server 2008-Transaktion verwenden, kann die Transaktion nach dem Zufallsprinzip fehlschlagen commit in Windows Server 2003 oder Windows XP Professional X 64 Edition

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 955280 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Auf dieser Seite

Problembeschreibung

Auf einem Computer mit Windows Server 2003 oder Windows XP Professional X 64 Edition, wenn Sie die OpenSqlFilestream-API oder .NET SqlFilestream-Klasse, verwenden um einen Dateihandle für den FileStream-Zugriff in einer Transaktion in Microsoft SQL Server 2008, die Transaktion erhalten fehlschlagen zufällig commit. Wenn dieses Problem auftritt, wird eine der folgenden Fehlermeldungen in der SQL Server-Fehlerprotokolldatei protokolliert:
  • 3910 (Transaktionskontext wird von einer anderen Sitzung verwendet)
  • 3981 (Der Transaktion-Vorgang kann nicht ausgeführt werden, da ausstehende Anforderungen an diese Transaktion arbeiten)
  • 3922 (Eintragen in nicht der Transaktion möglich, da die Transaktion nicht vorhanden ist)
Die Ursache des Problems bezieht sich nicht auf das FILESTREAM-Feature in SQL Server 2008. Allerdings treten normalerweise das Problem Wenn Sie das FILESTREAM-Feature in SQL Server 2008 verwenden.

Ursache

Dieses Problem aufgrund eines Fehlers im Server-Dienst. Der Serverdienst behandeln falsch Verzögerungen, die die Datei schließen. Daher können keine SQL Server 2008 Commit-Operationen durchführen.

Lösung

Hotfix-Informationen

Windows Server 2003

Ein unterstützter Hotfix ist inzwischen von Microsoft. Es ist jedoch nur die Behebung des Problems die in diesem Artikel beschriebene vorgesehen. Wenden Sie es nur auf Systemen, bei die dieses spezielle Problem auftritt. Dieser Hotfix wird unter Umständen zu einem späteren Zeitpunkt weiteren Tests unterzogen. Wenn durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfiehlt Microsoft daher, auf die nächste Softwareupdate zu warten, das diesen Hotfix enthält.

Dieses Problem sofort beheben möchten, wenden Sie sich an Microsoft Support Services, um den Hotfix zu erhalten. Eine vollständige Liste mit Telefonnummern der Microsoft Product Support Services und Informationen über Supportkosten der folgenden Microsoft-Website:
http://support.microsoft.com/contactus/?ws=support
Hinweis: PLEASE DO NOT TRANSLATE and DELETE THIS PASSAGE. IT DOES NOT APPLY TO GERMANY.
Voraussetzungen
Um diesen Hotfix anwenden, Sie müssen oder ausgeführt werden Windows Server 2003 Service Pack 1, Windows Server 2003 Service Pack 2, Windows XP Professional X 64 Edition Windows XP Professional X 64 Edition Service Pack 2 auf dem Computer.
Neustartanforderung
Sie müssen den Computer nach Installation dieses Hotfixes neu starten.
Ersetzte Hotfixes
Dieser Hotfix ersetzt keinen zuvor veröffentlichten Hotfixes.
Dateiinformationen
Die englische Version dieses Hotfixes weist die Dateiattribute (oder höher Dateiattribute), die in der folgenden Tabelle aufgelistet werden. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Verwenden Sie die Registerkarte Zeitzone im Element Datum und Uhrzeit in der Systemsteuerung, um die Differenz zwischen UTC und der Ortszeit zu ermitteln.

Windows Server 2003 mit Servicepack 1, X 86-basierte Versionen
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
SRV.sys5.2.3790.3177361.47218-Jul-200810: 15X 86

Windows Server 2003 mit Servicepack 1 , -X 64-basierten Versionen
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
SRV.sys5.2.3790.3177674,81621-Jul-200807: 32X 64
Windows Server 2003 mit Service Pack 1, Itanium-basierte Versionen
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
SRV.sys5.2.3790.31771,110,52821-Jul-200807: 32IA-64

Windows Server 2003 mit ServicePack 2, X 86-basierte Versionen
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
SRV.sys5.2.3790.4337358,40018-Jul-200812: 04X 86

Windows Server 2003 mit ServicePack 2, X 64-basierte Versionen
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
SRV.sys5.2.3790.4337648,19221-Jul-200814: 57X 64

Windows Server 2003 mit Service Pack 2, Itanium-basierte Versionen
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
SRV.sys5.2.3790.43371,111,55221-Jul-200814: 54IA-64

Windows XP Professional X 64 Edition

Ein unterstützter Hotfix ist inzwischen von Microsoft. Es ist jedoch nur die Behebung des Problems die in diesem Artikel beschriebene vorgesehen. Wenden Sie es nur auf Systemen, bei die dieses spezielle Problem auftritt. Dieser Hotfix wird unter Umständen zu einem späteren Zeitpunkt weiteren Tests unterzogen. Wenn durch dieses Problem nicht schwerwiegend beeinträchtigt ist, empfiehlt Microsoft daher, auf die nächste Softwareupdate zu warten, das diesen Hotfix enthält.

Dieses Problem sofort beheben möchten, wenden Sie sich an Microsoft Support Services, um den Hotfix zu erhalten. Eine vollständige Liste mit Telefonnummern der Microsoft Product Support Services und Informationen über Supportkosten der folgenden Microsoft-Website:
http://support.microsoft.com/contactus/?ws=support
Hinweis: PLEASE DO NOT TRANSLATE and DELETE THIS PASSAGE. IT DOES NOT APPLY TO GERMANY.
Voraussetzungen
Um diesen Hotfix installieren, müssen Sie Windows XP Professional X 64 Edition oder Windows XP Professional X 64 Edition Service Pack 2 werden auf dem Computer ausgeführt.
Neustartanforderung
Sie müssen den Computer nach Installation dieses Hotfixes neu starten.
Ersetzte Hotfixes
Dieser Hotfix ersetzt keinen zuvor veröffentlichten Hotfixes.
Dateiinformationen
Die englische Version dieses Hotfixes weist die Dateiattribute (oder höher Dateiattribute), die in der folgenden Tabelle aufgelistet werden. Die Datums- und Uhrzeitangaben für diese Dateien sind in Coordinated Universal Time (UTC) angegeben. Wenn Sie sich die Dateiinformationen ansehen, werden diese Angaben in die lokale Zeit konvertiert. Verwenden Sie die Registerkarte Zeitzone im Element Datum und Uhrzeit in der Systemsteuerung, um die Differenz zwischen UTC und der Ortszeit zu ermitteln.

Windows XP Professional X 64 Edition
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
SRV.sys5.2.3790.3177674,81621-Jul-200807: 32X 64

Windows XP Professional X 64 Edition mit ServicePack 2
Tabelle minimierenTabelle vergrößern
DateinameDateiversionDateigrößeDatumUhrzeitPlattform
SRV.sys5.2.3790.4337648,19221-Jul-200814: 57X 64

Abhilfe

wichtig In diesem Abschnitt, Methode oder Aufgabe enthält Hinweise zum Ändern der Registrierung. Allerdings können schwerwiegende Probleme auftreten, wenn Sie die Registrierung falsch ändern. Stellen Sie daher sicher, dass Sie diese Schritte sorgfältig ausführen. Für zusätzlichen Schutz sichern Sie der Registrierung, bevor Sie ihn ändern. Anschließend können Sie die Registrierung wiederherstellen, wenn ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie im folgenden Artikel der Microsoft Knowledge Base:
322756Zum Sichern und Wiederherstellen der Registrierung in Windows
Warnung Diese Problemumgehung wird ein Leistungsproblem verursachen, wenn Sie auf Dateien im System freigegebene.


Um dieses Problem zu umgehen, Festlegen der Cachedopenlimit-Registrierungseintrag Wert auf 0 und starten Sie den Serverdienst neu. Gehen Sie hierzu folgendermaßen vor:
  1. Suchen Sie im Registrierungs-Editor den folgenden Registrierungsunterschlüssel:
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Lanmanserver\Parameters
  2. Dem Registrierungsunterschlüssel Parameters klicken Sie auf Bearbeiten , klicken Sie auf neu , klicken Sie auf DWORD-Wert , geben Sie unter Cachedopenlimit , und drücken Sie anschließend die [EINGABETASTE].
  3. Legen Sie den dezimalen Wert des Registrierungseintrags Cachedopenlimit auf 0 .
  4. Starten Sie den Serverdienst neu.
Hinweis: Standardmäßig ist der Wert des Registrierungseintrags Cachedopenlimit 5 , obwohl Sie nicht festgelegt haben.

Warnung Wenn Sie den Wert auf 0 festlegen, werden die Dateihandles aller freigegebenen Dateien vom System nicht zwischengespeichert. Dies kann ein Leistungsproblem beim Zugriff auf freigegebene Dateien im System führen.

Status

Microsoft hat bestätigt, dass dies ein Problem in Microsoft-Produkten handelt, die im Abschnitt "Gilt für" aufgeführt sind.

Weitere Informationen

Dieses Problem tritt auch in Windows Server 2008 und Windows XP x 86-Versionen. Weitere Informationen zu diesem Problem in Windows Server 2008 finden Sie im folgenden Artikel der Microsoft Knowledge Base:
953263Wenn Sie eine Transact-SQL-Anweisung, verwenden um auf eine FILESTREAM-Spalte in SQL Server 2008 ausgeführt werden, kann die Anweisung zufällig fehlschlagen auf commit und führen zur Beschädigung von Daten in Windows Server 2008
Weitere Informationen zu diesem Problem in Windows XP x 86-Versionen finden Sie im folgenden Artikel der Microsoft Knowledge Base:
955567Wenn Sie, versuchen um Daten an eine FILESTREAM Varbinary (max) Spalte in SQL Server 2008 auf einem Windows XP-basierten Computer auftreten Datenbeschädigung
Weitere Informationen Terminologie für Softwareupdates, finden Sie die folgende KB-Artikelnummer:-
824684Erläuterung von Standardbegriffen bei Microsoft Softwareupdates

Wann den FILESTREAM-Speicher

In SQL Server 2008 können Daten binary large Object (BLOB) die Daten des Typs varbinary(max) sein, die Daten in Datenbanktabellen gespeichert. BLOB-Daten können auch die Daten des Typs VARBINARY(MAX) FILESTREAM sein, die die Daten im Dateisystem speichert. Die Datengröße und die Verwendung von Daten bestimmen, ob der Datenbankspeicher-oder der FILESTREAM -Speicher verwenden sollten. Berücksichtigen Sie mit den FILESTREAM -Speicher, wenn folgende Bedingungen erfüllt sind:
  • BLOB-Daten, die Sie speichern ist im Durchschnitt größer als 1 Megabyte (MB).
  • Schnelle Lesezugriff ist wichtig.
  • Sie entwickeln Anwendungen, die eine mittlere Ebene für die Anwendungslogik verwenden.
Wenn die BLOB-Daten weniger als 1 MB ist, sollten Sie verwenden die Datenbankspeicherung. Die Datenbankspeicherung bietet häufig besser streaming Leistung.

Weitere Informationen der folgenden Microsoft Developer Network (MSDN)-Website:
http://msdn.microsoft.com/en-us/library/bb933993.aspx

Eigenschaften

Artikel-ID: 955280 - Geändert am: Dienstag, 13. Januar 2009 - Version: 2.0
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft Windows Server 2003, Web Edition
  • Microsoft Windows Server 2003, Datacenter Edition (32-bit x86)
  • Microsoft Windows Server 2003, Datacenter Edition for Itanium-Based Systems
  • Microsoft Windows Server 2003, Datacenter x64 Edition
  • Microsoft Windows Server 2003, Enterprise x64 Edition
  • Microsoft Windows Server 2003, Enterprise Edition (32-bit x86)
  • Microsoft Windows Server 2003, Enterprise Edition for Itanium-based Systems
  • Microsoft Windows Server 2003, Standard x64 Edition
  • Microsoft Windows Server 2003, Standard Edition (32-bit x86)
  • Microsoft Windows XP Professional x64 Edition
Keywords: 
kbmt kbexpertiseadvanced kbfix kbautohotfix kbsurveynew kbqfe kbhotfixserver KB955280 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 955280
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.

Ihr Feedback an uns

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com