Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Eine opportunistische Sperre (auch oplock genannt) ist eine Sperre, die von einem Client auf einer Datei auf einem Server platziert wird. In den meisten Fällen fordert ein Client eine opportunistische Sperre an, damit daten lokal zwischengespeichert werden können, wodurch der Netzwerkdatenverkehr reduziert und die offensichtliche Reaktionszeit verbessert wird. Opportunistische Sperrmechanismen werden von Netzwerk-Redirectoren auf Clients, die mit Remoteservern verbunden sind, sowie von Clientanwendungen auf lokalen Servern verwendet.
Hinweis
Die Artikel zu opportunistischen Sperren in diesem Abschnitt beziehen sich hauptsächlich auf Clientanwendungen, obwohl einige Informationen für Netzwerkumleitungen bereitgestellt werden. Weitere Oplock-Informationen für Netzwerkumleitungen finden Sie in den Oplocks-Artikeln von Windows WDK.
Überblick
Opportunistische Sperren koordinieren das Zwischenspeichern von Daten und die Kohärenz zwischen Clients und Servern und zwischen mehreren Clients. Daten, die kohärent sind, sind Daten, die im gesamten Netzwerk identisch sind. Anders ausgedrückt: Wenn Daten kohärent sind, werden Daten auf dem Server und alle Clients synchronisiert.
Opportunistische Sperren sind keine Befehle vom Client an den Server. Sie sind Anforderungen vom Client an den Server. Aus Sicht des Kunden sind sie opportunistisch. Mit anderen Worten, der Server gewährt solche Sperren, wenn andere Faktoren die Sperren möglich machen.
Wenn eine lokale Anwendung den Zugriff auf eine Remotedatei anfordert, ist die Implementierung opportunistischer Sperren für die Anwendung transparent. Der Netzwerkumleiter und der beteiligte Server öffnen und schließen die opportunistischen Sperren automatisch. Opportunistische Sperren können jedoch auch verwendet werden, wenn eine lokale Anwendung zugriff auf eine lokale Datei anfordert, und der Zugriff durch andere Anwendungen und Prozesse muss delegiert werden, um Beschädigungen der Datei zu verhindern. In diesem Fall fordert die lokale Anwendung direkt eine opportunistische Sperre vom lokalen Dateisystem an und zwischenspeichert die Datei lokal. Bei verwendung auf diese Weise ist die opportunistische Sperre effektiv ein Semaphor, der vom lokalen Server verwaltet wird und hauptsächlich für die Zwecke der Datenkohärenz in der Datei- und Dateizugriffsbenachrichtigung verwendet wird.
Bevor Sie opportunistische Sperren in Ihrer Anwendung verwenden, sollten Sie mit den Dateizugriffs- und Freigabemodi vertraut sein, die unter Erstellen und Öffnen von Dateien beschrieben sind.
Die maximale Anzahl gleichzeitiger opportunistischer Sperren, die Sie erstellen können, ist nur auf die Menge des verfügbaren Arbeitsspeichers beschränkt.
Lokale Anwendungen sollten nicht versuchen, opportunistische Sperren von Remoteservern anzufordern. Ein Fehler wird von DeviceIoControl zurückgegeben, wenn versucht wird, dies zu tun.
Opportunistische Sperren sind für Anwendungen von begrenztem Nutzen. Eine Verwendung opportunistischer Sperren durch Anwendungen in einem lokalen Dateisystem besteht darin, transparenten Dateizugriff zu ermöglichen. Eine Anwendung, z. B. ein Inhaltsindexer oder ein anderer Scanner, kann eine opportunistische Sperre verwenden, um benachrichtigt zu werden, dass eine andere Anwendung versucht, auf eine Datei zuzugreifen, die von der Indexeranwendung verarbeitet wird. Auf diese Weise kann der Indexer sein Handle schließen und der anderen Anwendung den Weg freimachen, um zu verhindern, dass Freigabeverletzungen oder andere Probleme für die andere Anwendung verursacht werden. Eine weitere praktische Verwendung opportunistischer Sperren in einer Anwendung besteht darin, einen Netzwerkumleitungs- oder server opportunistischen Sperrhandler zu testen.
In der Regel implementieren Dateisysteme Unterstützung für opportunistische Sperren. Die meisten Anwendungen lassen die opportunistische Sperrverwaltung den Dateisystemtreibern zu. Jeder, der ein Dateisystem implementiert, sollte das Installable File System (IFS) Kit verwenden. Jeder, der einen anderen Gerätetreiber als ein installierbares Dateisystem entwickelt, sollte das Windows Driver Kit (WDK) verwenden.
Opportunistische Sperren und die zugehörigen Vorgänge sind eine Obermenge des opportunistischen Sperrteils des Common Internet File System (CIFS)-Protokolls, einem Internetentwurf. Das CIFS-Protokoll ist eine erweiterte Version des SMB-Protokolls (Server Message Block). Weitere Informationen finden Sie unter Microsoft SMB Protocol and CIFS Protocol Overview. Der CIFS-Internetentwurf führt explizit aus, dass eine CIFS-Implementierung opportunistische Sperren implementieren kann, indem sie deren Gewährung verweigert.
In diesem Abschnitt
In den folgenden Themen werden opportunistische Sperren identifiziert:
Thema | BESCHREIBUNG |
---|---|
Lokales Zwischenspeichern | Das lokale Zwischenspeichern von Daten ist eine Technik, die verwendet wird, um den Netzwerkzugriff auf Datendateien zu beschleunigen. Es umfasst das Zwischenspeichern von Daten auf Clients und nicht auf Servern, wenn möglich. |
Datenkohärenz | Wenn Daten kohärent sind, werden Daten auf dem Server und alle Clients synchronisiert. Eine Art von Softwaresystem, das Datenkohärenz bereitstellt, ist ein Revisionskontrollessystem (RCS). |
So fordern Sie eine opportunistische Sperre an | Opportunistische Sperren werden angefordert, indem sie zuerst eine Datei mit Berechtigungen öffnen und kennzeichnungen, die für die Anwendung geeignet sind, die die Datei öffnet. Alle Dateien, für die opportunistische Sperren angefordert werden, müssen für überlappende (asynchrone) Vorgänge geöffnet werden. |
Serverantwort auf offene Anfragen zu gesperrten Dateien | Sie können die Auswirkungen Ihrer Anwendung auf andere Clients und die Auswirkungen auf Ihre Anwendung minimieren, indem Sie so viel Freigabe wie möglich gewähren, die erforderliche Mindestzugriffsstufe anfordern und die für Ihre Anwendung am wenigsten intrusive opportunistische Sperre verwenden. |
Arten von opportunistischen Sperren | Beschreibt Read-Write-Handle-, Read-Write-, Read-Handle- und Read-Opportunistic-Locks. Beschreibt außerdem die Legacy-Level 1 und Level 2 sowie Batch- und Filter-opportunistische Sperren. |
Aufbrechen opportunistischer Sperren | Das Unterbrechen einer opportunistischen Sperre ist der Prozess der Herabsetzung der Sperre, die ein Client auf einer Datei hat, damit ein anderer Client die Datei öffnen kann, mit oder ohne opportunistische Sperre. |
Beispiele für Opportunistic Lock | Diagramme von Netzwerkdatenverkehr-Ansichten für eine opportunistische Sperre der Ebene 1, eine opportunistische Batchsperre und eine opportunistische Filtersperre. |
Opportunistische Sperrvorgänge | Wenn eine Anwendung opportunistische Sperren anfordert, müssen alle Dateien, für die sie Sperrungen anfordert, für überlappende (asynchrone) Eingaben und Ausgaben mithilfe der CreateFile-Funktion mit dem FILE_FLAG_OVERLAPPED Flag geöffnet werden. |
Weitere Informationen zu opportunistischen Sperren finden Sie im CIFS-Internetentwurfsdokument. Alle Diskrepanzen zwischen diesem Thema und dem aktuellen CIFS-Internetentwurf sollten zugunsten des CIFS-Internetentwurfs behoben werden.