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 TM (gerenciador de transações) é uma instância de um log. No KTM, os objetos TM especificam o log e algumas das funcionalidades do TM. Normalmente, há muitos objetos TM em um nó específico. Os RMs (resource managers) devem ser associados a um TM específico. Há três tipos de TMs:
- Um TM volátil, que não tem log.
- Uma TM regular, que tem um log e é usada para coordenar as transações de uma ou mais RMs.
- Um gerenciador de transações superior.
Gerenciador de Transações Voláteis
Um TM volátil é um TM para RMs somente leitura ou voláteis. Ele não tem um log e não persiste o estado das transações entre reinicializações do sistema.
Gerenciador de Transações
Os TMs têm um log, um ou mais RMs duráveis ou voláteis ou ambos. O TM persistirá o estado de uma transação entre as reinicializações do sistema até que as transações sejam concluídas. Um modelo de anulação presumida é usado, portanto, as transações que estavam ativas, mas não preparadas quando o objeto TM é desligado, são revertidas. Ao abrir um TM pela primeira vez, você deve recuperar o TM chamando a função RecoverTransactionManager.
Gerentes de Transações Superiores
Um TM superior é um TM para outros TMs. Ele coordena transações. Ele também emite TRANSACTION_NOTIFY_PREPARE notificações para o KTM (Kernel Transaction Manager). Um exemplo de um TM superior é o Coordenador de Transações Distribuídas da Microsoft (DTC). Essa capacidade vem com uma responsabilidade adicional em tempo de recuperação. Durante a recuperação, a RM deve primeiro chamar a função OpenEnlistment para reabrir a inscrição. Ele também deve entregar (ou entregar novamente) o resultado da transação se a transação tiver sido confirmada; é gratuito entregar um resultado chamando a função CommitTransaction ou a função RollbackTransaction. Essa obrigação não termina até que tenha recebido um evento de notificação TRANSACTION_NOTIFY_COMMIT_COMPLETE ou TRANSACTION_NOTIFY_ROLLBACK_COMPLETE associado. Se uma TM superior não executar essas operações no momento da recuperação, o KTM limpará todas as transações que não receberam resultados até o final da fase de recuperação. No entanto, isso pode resultar em resultados de transação inconsistentes.
Funções do Gerenciador de Transações
As funções a seguir são usadas com gerenciadores de transações.
| Função | Descrição |
|---|---|
| CreateTransactionManager | Cria um novo objeto TM (gerenciador de transações) e retorna um identificador com o acesso especificado. |
| GetCurrentClockTransactionManager | Obtém um valor de relógio virtual de um gerenciador de transações. |
| GetTransactionManagerId | Obtém um identificador para o gerenciador de transações especificado. |
| OpenTransactionManager | Abre um gerenciador de transações existente. |
| RecoverTransactionManager | Recupera o estado de um gerenciador de transações de seu arquivo de log. |
| rollforwardTransactionManager | Recupera o estado de um gerenciador de transações de seu arquivo de log para o valor do relógio virtual especificado. |