Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um bloqueio oportunista (também chamado de oplock) é um bloqueio colocado por um cliente em um arquivo que reside em um servidor. Na maioria dos casos, um cliente solicita um bloqueio oportunista para que possa armazenar dados em cache localmente, reduzindo o tráfego de rede e melhorando o tempo de resposta aparente. Bloqueios oportunistas são usados por redirecionadores de rede em clientes com servidores remotos, bem como por aplicativos cliente em servidores locais.
Observação
Os artigos sobre bloqueios oportunistas encontrados nesta seção pertencem principalmente a aplicativos cliente, embora algumas informações sejam fornecidas para redirecionadores de rede. Você pode encontrar mais informações sobre oplock para redirecionadores de rede nos artigos Oplocks do WDK do Windows.
Visão geral
Bloqueios oportunistas coordenam o cache de dados e a coerência entre clientes e servidores e entre vários clientes. Dados coerentes são dados iguais em toda a rede. Em outras palavras, se os dados forem coerentes, os dados no servidor e todos os clientes serão sincronizados.
Bloqueios oportunistas não são comandos do cliente para o servidor. São solicitações do cliente para o servidor. Do ponto de vista do cliente, eles são oportunistas. Em outras palavras, o servidor concede esses bloqueios sempre que outros fatores possibilitam os bloqueios.
Quando um aplicativo local solicita acesso a um arquivo remoto, a implementação de bloqueios oportunistas é transparente para o aplicativo. O redirecionador de rede e o servidor envolvidos abrem e fecham os bloqueios oportunistas automaticamente. No entanto, bloqueios oportunistas também podem ser usados quando um aplicativo local solicita acesso a um arquivo local e o acesso por outros aplicativos e processos deve ser delegado para evitar a corrupção do arquivo. Nesse caso, o aplicativo local solicita diretamente um bloqueio oportunista do sistema de arquivos local e armazena o arquivo em cache localmente. Quando usado dessa forma, o bloqueio oportunista é efetivamente um semáforo gerenciado pelo servidor local e é usado principalmente para fins de coerência de dados no acesso e notificação de arquivos.
Antes de usar bloqueios oportunistas em seu aplicativo, você deve estar familiarizado com os modos de acesso e compartilhamento de arquivos descritos na criação e abertura de arquivos.
O número máximo de bloqueios oportunistas simultâneos que você pode criar é limitado apenas pela quantidade de memória disponível.
Os aplicativos locais não devem tentar solicitar bloqueios oportunistas de servidores remotos. Um erro será retornado por DeviceIoControl se for feita uma tentativa de fazer isso.
Bloqueios oportunistas têm utilidade limitada para aplicações. Um uso de bloqueios oportunistas por aplicativos em um sistema de arquivos local é fornecer acesso transparente a arquivos. Um aplicativo, como um indexador de conteúdo ou outro scanner, pode usar um bloqueio oportunista para ser notificado de que outro aplicativo está tentando acessar um arquivo que o aplicativo indexador está processando. Isso permite que o indexador feche seu identificador e saia do caminho do outro aplicativo e evite causar violações de compartilhamento ou outros problemas para o outro aplicativo. Outro uso prático de bloqueios oportunistas em um aplicativo é testar um redirecionador de rede ou um manipulador de bloqueio oportunista do servidor.
Normalmente, os sistemas de arquivos implementam suporte para bloqueios oportunistas. A maioria dos aplicativos deixa o gerenciamento de bloqueio oportunista para os drivers do sistema de arquivos. Qualquer pessoa que implemente um sistema de arquivos deve usar o Kit IFS (Sistema de Arquivos Instalável). Qualquer pessoa que desenvolva um driver de dispositivo diferente de um sistema de arquivos instalável deve usar o WDK (Windows Driver Kit).
Bloqueios oportunistas e as operações associadas são um superconjunto do bloqueio oportunista do protocolo CIFS (Common Internet File System), um rascunho da Internet. O protocolo CIFS é uma versão aprimorada do protocolo SMB (Server Message Block). Para obter mais informações, consulte o Protocolo SMB da Microsoft e a visão geral do protocolo CIFS. O CIFS Internet Draft identifica explicitamente que uma implementação do CIFS pode implementar bloqueios oportunistas recusando-se a concedê-los.
Nesta seção
Os tópicos a seguir identificam bloqueios oportunistas:
| Tópico | Descrição |
|---|---|
| Cache local | O cache local de dados é uma técnica usada para acelerar o acesso à rede a arquivos de dados. Isso envolve o cache de dados em clientes e não em servidores quando possível. |
| Coerência de dados | Se os dados forem coerentes, os dados no servidor e todos os clientes serão sincronizados. Um tipo de sistema de software que fornece coerência de dados é um RCS (sistema de controle de revisão). |
| Como solicitar um bloqueio oportunista | Bloqueios oportunistas são solicitados abrindo primeiro um arquivo com permissões e sinalizadores apropriados para o aplicativo que está abrindo o arquivo. Todos os arquivos para os quais bloqueios oportunísticos serão solicitados devem ser abertos para operação assíncrona. |
| Resposta do servidor a solicitações abertas em arquivos bloqueados | Você pode minimizar o impacto que seu aplicativo tem em outros clientes e o impacto que eles têm em seu aplicativo concedendo o máximo de compartilhamento possível, solicitando o nível mínimo de acesso necessário e usando o bloqueio oportunista menos intrusivo adequado para seu aplicativo. |
| Tipos de bloqueios oportunistas | Descreve bloqueios oportunistas de leitura-gravação, leitura-gravação, identificador de leitura e leitura. Também descreve os bloqueios oportunistas de nível legado 1, nível 2, lote e filtro. |
| Interrupção de bloqueios oportunistas | Quebrar um bloqueio oportunista é o processo de degradação do bloqueio que um cliente tem em um arquivo para que outro cliente possa abrir o arquivo, com ou sem um bloqueio oportunista. |
| Exemplos de bloqueio oportunista | Diagramas de exibições de tráfego de rede para um bloqueio oportunista de nível 1, um bloqueio oportunista em lote e um bloqueio oportunista de filtro. |
| Operações de bloqueio oportunistas | Se um aplicativo solicitar bloqueios oportunistas, todos os arquivos para os quais ele solicita bloqueios deverão ser abertos para entrada e saída sobrepostas (assíncronas) usando a função CreateFile com o sinalizador FILE_FLAG_OVERLAPPED . |
Para obter informações adicionais sobre bloqueios oportunistas, consulte o documento CIFS Internet Draft. Todas as discrepâncias entre este tópico e o Rascunho da Internet do CIFS atual devem ser resolvidas em favor do Rascunho da Internet do CIFS.
Conteúdo relacionado
Guia de Gerenciamento de Protocolos e Acesso a Arquivos do NetApp