O que determina quanto tempo leva um servidor COM fora de processo para perceber que um cliente morreu?

Em uma configuração simples do Windows, temos um singleton COM que é executado como um servidor fora de processo.

Os clientes se conectam chamando cocreate e cada um recebe uma interface para a mesma instância do servidor.

Se os clientes desligam normalmente, eles liberam suas referências.

O servidor possui um pouco de lógica que o mantém ativo por um curto período de tempo após a última versão para permitir novas conexões.

Estou interessado em um caso especial - o servidor está sendo executado com apenas um cliente que falha (considere isso como uma falha desconhecida aleatória) e o cliente sai sem ter lançado suas referências.

Observo que, após um período indefinido, digamos 8 minutos, o servidor recebe chamadas de liberação nos stubs de quaisquer objetos dos quais o servidor retornou interfaces para o cliente. Parece ser uma limpeza automática que eu suponho que seja iniciada pela camada LRPC.

Isso está documentado em qualquer lugar e o tempo limite é configurável?

Nota: Modelo de apartamento multithread usado por toda parte.

questionAnswers(1)

yourAnswerToTheQuestion