System.Runtime.Remoting.Lifetime Namespace

Contém classes que gerenciam o tempo de vida de objetos remotos.

Classes

Nome Description
ClientSponsor

Fornece uma implementação padrão para uma classe de patrocinador vitalícia.

LifetimeServices

Controla os serviços de tempo de vida de comunicação remota .NET.

Interfaces

Nome Description
ILease

Define um objeto de concessão de tempo de vida usado pelo serviço de tempo de vida de comunicação remota.

ISponsor

Indica que o implementador deseja ser um patrocinador de concessão vitalícia.

Enumerações

Nome Description
LeaseState

Indica os possíveis estados de concessão de uma concessão de tempo de vida.

Comentários

Tradicionalmente, a coleta de lixo distribuída usa contagens de referência e ping para controle sobre o tempo de vida dos objetos. Isso funciona bem quando há alguns clientes por serviço, mas não é bem dimensionado quando há milhares de clientes por serviço. O serviço de tempo de vida de comunicação remota associa uma concessão a cada serviço e exclui um serviço quando seu tempo de concessão expira. O serviço de tempo de vida pode assumir a função de um coletor de lixo distribuído tradicional e também se ajusta bem quando o número de clientes por servidor aumenta.

Cada domínio de aplicativo contém um gerenciador de concessão responsável por controlar as concessões em seu domínio. Todas as concessões são examinadas periodicamente para tempos de concessão expirados. Se uma concessão expirou, um ou mais dos patrocinadores da concessão são invocados e têm a oportunidade de renovar a concessão. Se nenhum dos patrocinadores decidir renovar a concessão, o gerente de concessão removerá a concessão e o objeto poderá ser coletado pelo coletor de lixo. O gerente de concessão mantém uma lista de concessão com concessões classificadas pelo tempo de concessão restante. As concessões com o menor tempo restante são armazenadas na parte superior da lista.