Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Un verrou opportuniste (également appelé oplock) est un verrou placé par un client sur un fichier résidant sur un serveur. Dans la plupart des cas, un client demande un verrou opportuniste afin qu’il puisse mettre en cache les données localement, ce qui réduit le trafic réseau et améliore le temps de réponse apparent. Les verrous opportunistes sont utilisés par les redirecteurs réseau sur les clients avec des serveurs distants, ainsi que par les applications clientes sur des serveurs locaux.
Remarque
Les articles sur les verrous opportunistes trouvés dans cette section concernent principalement les applications clientes, bien que certaines informations soient fournies pour les redirecteurs réseau. Vous trouverez plus d’informations sur l’oplock pour les redirecteurs réseau dans les articles Oplocks de Windows WDK.
Aperçu
Les verrous opportunistes coordonnent la mise en cache et la cohérence des données entre les clients et les serveurs et entre plusieurs clients. Les données cohérentes sont des données identiques sur le réseau. En d’autres termes, si les données sont cohérentes, les données sur le serveur et tous les clients sont synchronisées.
Les verrous opportunistes ne sont pas des commandes par le client sur le serveur. Il s’agit de demandes du client vers le serveur. Du point de vue du client, ils sont opportunistes. En d’autres termes, le serveur accorde ces verrous chaque fois que d’autres facteurs rendent les verrous possibles.
Lorsqu’une application locale demande l’accès à un fichier distant, l’implémentation de verrous opportunistes est transparente pour l’application. Le redirecteur réseau et le serveur impliqués ouvrent et ferment automatiquement les verrous opportunistes. Toutefois, les verrous opportunistes peuvent également être utilisés lorsqu’une application locale demande l’accès à un fichier local, et que l’accès par d’autres applications et processus doit être délégué pour empêcher l’altération du fichier. Dans ce cas, l’application locale demande directement un verrou opportuniste à partir du système de fichiers local et met en cache le fichier localement. Lorsqu’il est utilisé de cette façon, le verrou opportuniste fonctionne effectivement comme un sémaphore géré par le serveur local et est principalement utilisé à des fins de cohérence des données dans les fichiers et de notification d'accès aux fichiers.
Avant d’utiliser des verrous opportunistes dans votre application, vous devez être familiarisé avec les modes d’accès et de partage de fichiers décrits dans Création et ouverture de fichiers.
Le nombre maximal de verrous opportunistes simultanés que vous pouvez créer est limité uniquement par la quantité de mémoire disponible.
Les applications locales ne doivent pas tenter de demander des verrous opportunistes à partir de serveurs distants. Une erreur est retournée par DeviceIoControl si une tentative est effectuée pour effectuer cette opération.
Les verrous opportunistes sont d’une utilisation limitée pour les applications. L’une des utilisations de verrous opportunistes par les applications sur un système de fichiers local consiste à fournir un accès transparent aux fichiers. Une application, telle qu’un indexeur de contenu ou un autre scanneur, peut utiliser un verrou opportuniste pour être averti qu’une autre application tente d’accéder à un fichier que l’application indexeur traite. Cela permet à l'indexeur de fermer son handle et de se retirer pour éviter de provoquer des violations de partage ou d'autres problèmes pour l'autre application. Une autre utilisation pratique des verrous opportunistes dans une application consiste à tester un redirecteur réseau ou un gestionnaire de verrous opportunistes de serveur.
En règle générale, les systèmes de fichiers implémentent la prise en charge des verrous opportunistes. La plupart des applications conservent la gestion des verrous opportunistes aux pilotes du système de fichiers. Toute personne implémentant un système de fichiers doit utiliser le kit IFS (Installable File System). Toute personne qui développe un pilote de périphérique autre qu’un système de fichiers installable doit utiliser le Kit de pilotes Windows (WDK).
Les verrous opportunistes et les opérations associées sont un super-ensemble de la partie opportuniste du protocole CIFS (Common Internet File System), un brouillon Internet. Le protocole CIFS est une version améliorée du protocole SMB (Server Message Block). Pour plus d’informations, consultez La vue d’ensemble du protocole Microsoft SMB et du protocole CIFS. Le brouillon Internet CIFS identifie explicitement qu’une implémentation CIFS peut implémenter des verrous opportunistes en refusant de les accorder.
Dans cette section
Les rubriques suivantes identifient les verrous opportunistes :
| Sujet | Descriptif |
|---|---|
| Mise en cache locale | mise en cache locale de données est une technique utilisée pour accélérer l’accès réseau aux fichiers de données. Il implique la mise en cache des données sur des clients plutôt que sur des serveurs lorsque cela est possible. |
| Cohérence des données | Si les données sont cohérentes, les données sur le serveur et tous les clients sont synchronisés. Un type de système logiciel qui fournit une cohérence des données est un système de contrôle de révision (RCS). |
| Comment demander un verrou opportuniste | Les verrous opportunistes sont demandés en ouvrant d’abord un fichier avec des autorisations et des indicateurs appropriés à l’application ouvrant le fichier. Tous les fichiers pour lesquels les verrous opportunistes seront demandés doivent être ouverts pour une opération qui se chevauche (asynchrone). |
| Réponse du serveur aux demandes ouvertes sur les fichiers verrouillés | Vous pouvez réduire l’impact que votre application a sur d’autres clients et l’impact qu’elles ont sur votre application en accordant autant de partage que possible, en demandant le niveau d’accès minimal nécessaire et en utilisant le verrou opportuniste le moins intrusif adapté à votre application. |
| Types de verrous opportunistes | Décrit les verrous opportunistes en lecture-écriture, en lecture-écriture, en lecture-écriture et en lecture opportuniste. Décrit également les verrous de niveau 1 hérité, niveau 2, traitement par lots et filtre opportunistes. |
| Rupture des verrous opportunistes | La rupture d’un verrou opportuniste est le processus de dégradation du verrou qu’un client a sur un fichier afin qu’un autre client puisse ouvrir le fichier, avec ou sans verrou opportuniste. |
| Exemples de verrous opportunistes | Diagrammes des vues de trafic réseau pour un verrou opportuniste de niveau 1, un verrou opportuniste par lot et un verrou opportuniste de filtre. |
| Opérations de verrouillage opportunistes | Si une application demande des verrous opportunistes, tous les fichiers pour lesquels il demande des verrous doivent être ouverts pour l’entrée et la sortie superposées (asynchrones) à l’aide de la fonction CreateFile avec l’indicateur FILE_FLAG_OVERLAPPED . |
Pour plus d’informations sur les verrous opportunistes, consultez le document CIFS Internet Draft. Toutes les différences entre cette rubrique et le brouillon Internet CIFS actuel doivent être résolues en faveur du brouillon Internet CIFS.
Contenu connexe
Guide de gestion de l’accès aux fichiers et des protocoles NetApp