Gerenciando transações automáticas no COM+
No modelo de programação COM+, você pode projetar seus componentes para fazer o que eles fazem melhor — habilitar a lógica de negócios ou estabelecer uma conexão de banco de dados — e contar com a estrutura de processamento de transações do Microsoft Windows para automatizar transações.
Iniciando uma transação
COM+ inicia automaticamente uma transação quando encontra uma das seguintes condições:
- Quando um cliente não transacional chama um componente que requer uma transação ou requer uma nova transação.
- Quando um cliente transacional chama um componente que requer uma nova transação.
Se COM+ determinar que um objeto deve ter uma nova transação, ele começará a transação primeiro e, em seguida, colocará o objeto nele. O processo inclui as seguintes etapas:
- COM+ cria um objeto de contexto, define os atributos de ativação JIT e Sincronização como Required e define os sinalizadores consistente e done como True e False, respectivamente.
- COM+ se comunica com o Coordenador de Transações Distribuídas (DTC) para iniciar uma transação. O DTC coordena a transação física.
- O DTC gera um identificador de transação e o passa de volta para COM+. O identificador de transação estabelece um limite de transação. Todos os objetos que participam da transação compartilham o mesmo identificador.
- Quando o cliente cria o objeto, COM+ o ativa dentro do limite da transação.
Finalizando uma transação
COM+ termina uma transação automática confirmando-a ou anulando-a quando uma das seguintes condições ocorre:
- O objeto raiz da transação conclui seu trabalho e o COM+ o libera. Depois que o objeto raiz é desativado, a transação tenta confirmar.
- O cliente libera o objeto raiz. Sem uma referência, o objeto raiz é desativado e a transação tenta confirmar.
- A transação excede seu limite de tempo limite. A transação é cancelada automaticamente se não for confirmada dentro do período de tempo limite da transação, desativando todos os objetos associados à transação. O período de tempo limite da transação padrão é de 60 segundos.
Tópicos relacionados