Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Ler Isolamento
O NTFS transacional (TxF) fornece consistência confirmada por leitura.
Um gravador transacionado refere-se a um identificador de arquivo transacionado aberto com qualquer permissão que não faz parte do acesso de leitura genérico, mas faz parte do acesso de gravação genérico. Um escritor transacionado visualiza a versão mais recente de um arquivo que inclui todas as alterações feitas pela mesma transação. Só pode haver um gravador de transações por ficheiro. Os escritores não transacionados estão sempre bloqueados por um escritor transacionado, mesmo que o ficheiro seja aberto com permissões de escrita partilhada.
Um leitor transacionado refere-se a um manipulador de ficheiro transacionado aberto com qualquer permissão que é parte do acesso de leitura genérico, mas não é parte do acesso de escrita genérico. Um leitor transacional exibe uma versão confirmada do arquivo que existia no momento em que o identificador do arquivo foi aberto. O leitor envolvido em transações é isolado dos efeitos dos escritores envolvidos em transações. Isso fornece uma exibição consistente do arquivo apenas durante a vida útil do identificador de arquivo e bloqueia gravadores não transacionados.
Observação
Quando um identificador é aberto para modificação com a função CreateFileTransacted , todas as aberturas subsequentes do ficheiro dentro dessa transação, seja em modo de leitura ou não, são convertidas pelo sistema para atuarem como um escritor transacionado, para efeitos de isolamento e outras semânticas transacionais. Isso significa que, posteriormente, quando um identificador é aberto para acesso somente leitura, o identificador não recebe uma visualização do arquivo antes do início da transação; ele recebe a visualização de transação ativa do arquivo.
Um identificador de arquivo não transacionado não vê nenhuma alteração feita em uma transação até que a transação seja confirmada. O identificador de arquivo não transacionado recebe uma exibição isolada que é semelhante a um leitor transacionado, mas, ao contrário de um leitor transacionado, ele recebe a atualização de arquivo quando um gravador transacionado confirma a transação.
Níveis de isolamento
TxF fornece isolamento de leitura comprometida. Isso significa que as atualizações de arquivos não são vistas fora da transação. Além disso, se um arquivo for aberto mais de uma vez durante a leitura de arquivos dentro da transação, você poderá ver resultados diferentes a cada abertura subsequente. Os ficheiros que estavam disponíveis na primeira vez que os acedeu podem não estar disponíveis (porque foram eliminados) ou vice-versa.
Bloqueio transacional
A criação de um gravador transacional em um arquivo bloqueia transacionalmente o arquivo. Depois de um arquivo ser bloqueado por uma transação, outras operações do sistema de ficheiros que não fazem parte dessa transação e que tentem modificar o arquivo bloqueado de forma transacional falharão com ERROR_SHARING_VIOLATION ou ERROR_TRANSACTIONAL_CONFLICT.
A tabela a seguir resume o bloqueio transacional.
Arquivo atualmente aberto por
Tentativa de abrir o arquivo por
Transacionado
Não transacionado
Leitor
Leitor/Escritor
Leitor
Leitor/Redator
Leitor de transações
Sim
Sim
Sim
Nº 2
Leitor/Gravador Transacional
Sim
Nº 2
Sim
Nº 2
Leitor sem transacções
Sim
Sim
Sim
Sim
Leitor/gravador não transacionável
Nº 1
Nº 1
Sim
Sim
- Falha devido a ERROR_TRANSACTIONAL_CONFLICT
2. Apresenta o erro ERROR_SHARING_VIOLATION
Se você abrir um fluxo nomeado para uma modificação que está usando uma transação, todo o arquivo deverá ser bloqueado.
Além do bloqueio transacional, aplicam-se regras típicas de compartilhamento de arquivos NTFS.
Você precisa considerar os dois modos de compartilhamento de arquivos a seguir em paralelo:
- O modo de bloqueio transacional.
- Modos normais de partilha de ficheiros.
Qualquer que seja o modo mais restritivo é o que se aplica.