Gerenciador de transações

Definição - O que significa Transaction Manager?

Um gerenciador de transações é uma parte de um aplicativo que controla a coordenação de transações sobre um ou mais recursos. O gerenciador de transações é responsável por criar objetos de transação e gerenciar sua durabilidade e atomicidade. Os gerenciadores de transações controlam todos os gerenciadores de recursos inscritos em uma transação.

Definirtec explica o gerente de transações

Quando instruídos a confirmar uma transação, os gerenciadores de transação iniciam o protocolo de confirmação de duas fases. Na primeira fase, eles pedem que todos os gerentes de recursos alistados se preparem. Na segunda fase, os gerenciadores de transações notificam os gerenciadores de recursos se a transação for abortada ou confirmada.

Um gerenciador de transações mantém um log no armazenamento. Este log é geralmente um arquivo sequencial, que é usado para registrar os eventos da transação. Os gerenciadores de transações usam este log para registrar o início das transações, confirmar decisões, alistamentos, etc. No momento do processamento normal, os gerenciadores de transações simplesmente gravam no log, mas se falharem, eles lêem o log assim que ele é reiniciado para restaurar o Estado.

Os gerentes de transações geralmente têm as seguintes responsabilidades:

  • Demarcação: iniciar e finalizar transações por meio dos métodos begin, commit e rollback.
  • Controlando o contexto de transação: os contextos de transação contêm todas as informações que ajudam um gerenciador de transações a monitorar uma transação. Os gerenciadores de transações são responsáveis ​​por construir contextos de transações e conectá-los ao encadeamento existente.
  • Coordenando a transação: os gerentes de transação geralmente têm a capacidade de harmonizar uma transação em vários recursos. Esse recurso exige o protocolo two-phase commit. O protocolo XA também é usado para registrar e gerenciar os recursos.
  • Recuperação de falha: Os gerentes de transação são responsáveis ​​por garantir que os recursos não sejam mantidos em um estado inconsistente no caso de falha do sistema ou aplicativo.