9.0 Obituários

Obituários servem como atributos operacionais que o eDirectory coloca em objetos para garantir a integridade referencial durante operações como apagar, mover, renomear e restaurar. Por exemplo, se o Grupo A possui um membro, Usuário B, e este é apagado, o diretório remove automaticamente a referência ao Usuário B no Grupo A. No eDirectory 8.8 SP8, os obituários gerados pelas operações de Apagar, Mover e Renomear são otimizadas por padrão.

NOTA:Os objetos com obituários são levados em consideração sempre que uma saída de agente é sincronizada e também pelo processo de obituário, que está programado para execução no final de um ciclo de sincronização de entrada.

Existem três classificações gerais para obituários:

Os obituários, com exceção dos de Acompanhamento, devem se mover ao longo de um conjunto de estados de sincronização:

Os estados são registrados no campo Flags do atributo do obituário. Para que um obituário possa se mover para o estado seguinte, o estado atual deve ter sido sincronizado com todas as réplicas do objeto real. Para determinar se todas as réplicas do anel passaram por um determinado estado de obituário, é computado um vetor a partir do Vetor transitivo. No eDirectory 8.6 e posterior, um Vetor de obituário não armazenado é utilizado. Em versões anteriores do eDirectory, o Vetor de purgação é utilizado. Se a Modificação da marca do horário (MTS) no obituário for mais antiga do que o vetor computado, o servidor responsável por esse obituário poderá avançá-lo para o próximo estado.

Para um obituário Secundário do tipo Back link, o agente que mantém a réplica master do objeto com o obituário é responsável pelo avanço dos estados. Para um obituário Secundário do tipo Usado por, o agente da réplica que o criou é responsável pelo avanço dos estados do obituário, desde que essa réplica ainda exista. Se ela não existir, o agente que mantém o master dessa partição assumirá a responsabilidade de avançar os estados para o obituário Usado por. Para um obituário Mover árvore, o master da partição raiz é responsável pelo avanço dos estados.

Os obituários Primários apenas poderão ser avançados em seus estados depois que todos os obituários Secundários tiverem avançado em todos os seus respectivos estados. Depois que o obituário Primário atingir seu último estado, e esse estado for sincronizado com todos os servidores no anel, tudo o que permanecerá será o objeto vazio, ou seja, um objeto sem atributos e que pode ser subsequentemente purgado do sistema pelo Processo de purgação. Os obituários de Acompanhamento serão removidos depois que obituário Primário estiver pronto para ser removido. Ou, no caso de Inhibit_move, o obituário de Acompanhamento será removido depois que o obituário Primário tiver movido para o estado OBF_NOTIFIED na réplica master.

A réplica responsável por processar obituários o faz em um processo em segundo plano (o Processo de obituário), programado por partição depois que uma determinada partição termina um ciclo de sincronização de entrada. Se não houver outras réplicas da partição, o Processo de replicação de saída ainda permanecerá programado no intervalo de heartbeat. Em seguida, o Processo de replicação de saída inicia o Processo de obituário. O Processo de obituário não pode e não precisa ser manualmente programado. Enquanto a sincronização ocorre, os Vetores transitivos são atualizados, avançando consequentemente o Vetor de purgação e o Vetor de inatividade. Conforme esses vetores avançam, os estados do obituário também têm permissão para avançar. Isso, juntamente com a programação automática realizada após a sincronização de entrada, conclui o ciclo de processamento de obituários. Portanto, a essência do processamento de obituários é a sincronização de objetos.

Para um objeto que está sendo removido, quando todos os obituários, cujo obituário Primário associado for do tipo DEAD (Inativo), tiverem avançado para o último estado (Purgável) e depois que esse estado tiver sido sincronizado com todas as réplicas, um novo processo será responsável pela remoção do objeto vazio de entrada restante do banco de dados. O Processo de purgação é executado automaticamente para remover esses objetos vazios. É possível programar manualmente o Processo de purgação e modificar seu intervalo de programação automática utilizando a página Configuração do agente no iMonitor.