Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Os criadores de aplicativos podem fazer pequenas alterações no código-fonte para adicionar operações de arquivo e registro transacionadas usando o Kernel Transaction Manager (KTM). Normalmente, este processo envolverá a criação de uma transação e a passagem do identificador para outras funções fornecidas por recursos transacionais, como NTFS Transacional e o Registo Transacionado.
A KTM fornece mecanismos para que a sua aplicação participe em transações, bem como para escrever o seu próprio gestor de recursos transacionais. Há funções que permitem criar, gerenciar e trabalhar com quatro classes de objetos do kernel: transações, gerenciadores de transações, gerenciadores de recursos e alistamentos. Se você estiver simplesmente usando transações, você só precisa trabalhar com objetos de transação e usar estas funções:
- CreateTransaction
- CommitTransaction
- RollbackTransaction
Nunca assuma que uma transação está ativa. As transações podem ser revertidas por vários motivos e a qualquer momento.
O Windows expõe uma interface baseada em identificador aos recursos do sistema. Para trabalhar com um objeto do sistema operacional, o aplicativo primeiro solicita um identificador para o objeto e, em seguida, usa esse identificador em chamadas de função subsequentes para acessar ou modificar o objeto. Uma alça geralmente pode ser aberta em diferentes modos; O modo especificado afeta a semântica de chamadas de função subsequentes. Por exemplo, um manipulador de ficheiro que é aberto por uma chamada para CreateFile com o indicador dwDesiredAccess definido como GENERIC_READ não pode ser usado em chamadas que modificam o ficheiro.
Você pode coordenar com Coordenador de Transações Distribuídas recursos de modo de usuário, como SQL ou MSMQ, e com recursos de modo kernel que usam a KTM. Primeiro, crie uma transação DTC ou um objeto System.Transactions, e em seguida chame o objeto IKernelTransaction, do qual se pode obter o identificador KTM. O objeto IKernelTransaction cria uma transação KTM subordinada à transação DTC. Com esse identificador, você pode criar seus objetos transacionados, mas sinalizar o resultado da transação usando DTC ou System.Transactions.