Sinalizadores consistentes e concluídos

COM+ sempre cria um objeto de contexto antes de ativar um objeto transacional. O objeto de contexto contém informações relacionadas ao objeto, como seu criador e seu identificador de transação. Cada objeto de contexto também contém um sinalizador consistente e um sinalizador concluído. Juntos, esses sinalizadores determinam o status do objeto transacional.

O sinalizador consistente indica que o objeto transacional é consistente ou inconsistente. Os detalhes específicos do que torna o estado de um objeto consistente cabe ao programador. Quando uma chamada de método define esse sinalizador como True, o objeto é consistente. False indica que o objeto é inconsistente. COM+ define o sinalizador como True quando cria uma instância de objeto. Um objeto consistente está pronto para prosseguir com a transação. Enquanto um objeto permanece ativo, as chamadas de método subsequentes podem alternar repetidamente o sinalizador consistente de True para False e vice-versa.

O sinalizador done determina a duração de uma transação. Quando uma chamada de método retorna, COM+ inspeciona o sinalizador concluído. Se o método definir esse sinalizador como True, COM+ desativará o objeto e observará o sinalizador consistente. Quando o sinalizador done é False, COM+ não desativa o objeto nem observa o sinalizador consistente. COM+ define o sinalizador done como False quando cria uma instância de objeto.

A bandeira consistente emite um voto para confirmar ou anular a transação na qual ela é executada, e a bandeira concluída finaliza a votação. COM+ inspeciona o sinalizador consistente quando o sinalizador done é definido como True em um retorno de chamada de método ou quando o objeto é desativado. Embora o sinalizador consistente de um objeto possa ser alterado repetidamente dentro de cada chamada de método, apenas a última alteração conta.

Gerenciando transações automáticas no COM+

Definindo os sinalizadores consistentes e concluídos