Update: WriterLock in OLE DB-Kernkomponenten kann Leser Starve, beim WriterLock Verbindungen öffnen

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

Auf dieser Seite

Problembeschreibung

Belastung möglicherweise ein Fehler in der OLE DB-Dienstkomponenten ein Threads wechseln in eine extrem enge Schleife, die 100 % CPU-Auslastung und Blockieren von Threads führen können.

Anwendungen wie Microsoft Internet Information Server (IIS), Microsoft Transaction Server (MTS) und COM+-Anwendungen möglicherweise reagiert (hängt), wenn tatsächlich die übrigen Threads im Prozess nur sehr wenig Kontext abrufen werden und kann nicht Ihre Vorgänge abgeschlossen werden.

Ursache

Der OLE DB-Dienstkomponenten mit einer hohen Anzahl von Verbindungsanforderungen Stresstesten kann Konflikte für die Hashtabellen verursachen, die Verbindungsinformationen enthalten. Wenn dieser Konflikt auftritt, kann ein Thread im Prozess eine for -Schleife eingeben, die nicht bis zur Veröffentlichung eines Elements beendet wird, die durch andere Threads im Prozess gespeichert werden. Da diese for -Schleife nicht viel Code enthält, wird eine sehr enge Schleife, die bewirkt, dass 100 % CPU-Auslastung und die anderen Threads für Kontext starves, daher nie die Veröffentlichung tritt auf. Die for -Schleife ergibt Ausführung als es sollte nicht gelegentlich.

Diese for -Schleife ist in der WriterLock-Code, der Zugriff auf die Hashtabellen schützt vorhanden. Wenn die Threads im Prozess überprüft werden, während das Programm scheint reagiert haben, einen Thread in der WriterLock-Code ausgeführt wird, und zahlreiche andere Threads sind im ReaderLock Code einen kritischen Abschnitt im Besitz des WriterLock-Threads wartet.

Lösung

Installieren Sie das neueste Servicepack für Microsoft Data Access Components 2.5, um dieses Problem zu beheben. Weitere Informationen finden Sie die folgende KB-Artikelnummer:
293312INFO: Wie erhalten Sie die neueste MDAC 2.5 Servicepack
Die englische Version dieses Updates müsste die folgenden Dateiattribute oder höher:
   Date      Version         Size             File name    
   ------------------------------------------------------
   5/3/00    2.510.5303.0    483,600 bytes    Oledb32.dll
				
Hinweis : das Installationspaket für diesen Hotfix (Q267566_W2K_SP1_x86_en.EXE) ist ausgelegt auf Microsoft Windows 2000-Plattformen und nicht auf Microsoft Windows NT 4.0, Microsoft Windows 95 oder Microsoft Windows 98-Plattformen ausgeführt. Aus diesem Grund wird die eigenständige Hotfix-Datei sowie bereitgestellt, sodass Sie Sie direkt auf Windows NT 4.0, Windows 95 oder Windows 98-Plattformen kopieren können. Das Installationspaket enthält die genaue dieselbe Datei, die den Attributen in diesem Abschnitt angegeben.


PROBLEMUMGEHUNG

Um zu diesem Problem zu umgehen, deaktivieren Sie Sitzungspooling mithilfe einer der folgenden Methoden:
  • Legen Sie den Wert OLEDB_SERVICES für den Anbieter zu 0xfffffffc in der Registrierung.

  • Fügen Sie "OLE DB Services =-2" auf Verbindungszeichenfolgen, die die Anwendung verwendet.

  • Wenn Sie reine OLE DB-Code verwenden, fügen Sie Code ähnlich dem folgenden hinzu die Initialisierungseigenschaften:

    //	OLE DB Services
    	InitProperties[0].dwPropertyID = DBPROP_INIT_OLEDBSERVICES;
    	InitProperties[0].vValue.vt = VT_I4;
    	InitProperties[0].vValue.lVal = DBPROPVAL_OS_ENABLEALL & ~ DBPROPVAL_OS_RESOURCEPOOLING;	
    					

Status

Microsoft hat bestätigt, dass es sich hierbei um ein Problem bei den in diesem Artikel genannten Microsoft-Produkten handelt. Dieses Problem wurde erstmals im Microsoft Data Access Components 2.5 Service Pack 2.

Eigenschaften

Artikel-ID: 267566 - Geändert am: Montag, 26. September 2005 - Version: 1.2
Die Informationen in diesem Artikel beziehen sich auf:
  • Microsoft OLE DB 2.5
  • Microsoft Data Access Components 2.5
Keywords: 
kbmt kbhotfixserver kbqfe kbbug kbcodesnippet kbfix kbmdac250sp1fix kbmdac250sp2fix kbqfe KB267566 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: 267566
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