Partilhar via


Conceitos de reciclagem de aplicativos COM+

A reciclagem de aplicativos pode aumentar significativamente a estabilidade geral de seus aplicativos COM+, oferecendo uma solução rápida para problemas conhecidos e ajudando a proteger contra problemas inesperados. Por exemplo, o desempenho do aplicativo pode se degradar com o tempo devido a problemas como vazamentos de memória, uso de recursos não escaláveis e falha de processo. COM+ fornece reciclagem de aplicativos como uma solução para esses problemas. Você pode usar a reciclagem de aplicativos para desligar automaticamente um processo e reiniciá-lo, reinicializando assim um processo com falha e realocando a memória que ele usa.

A reciclagem de aplicativos funciona criando uma duplicata do processo Dllhost associado a um aplicativo. Este processo Dllhost duplicado atende todas as solicitações de objeto futuras, o que deixa o Dllhost antigo para concluir o atendimento das solicitações de objeto restantes. O processo Dllhost antigo é encerrado quando deteta a liberação de todas as referências externas a objetos no processo ou quando o valor de tempo limite de expiração é atingido. Por meio desse comportamento, a reciclagem de aplicativos garante que um aplicativo cliente não sofra uma interrupção de serviço.

Observação

Não é possível reciclar um aplicativo COM+ que tenha sido configurado para ser executado como um serviço do Windows. Além disso, os aplicativos de biblioteca têm as propriedades de reciclagem e agrupamento do seu processo anfitrião.

 

Você pode configurar a reciclagem de aplicativos administrativamente, usando a ferramenta administrativa Serviços de Componentes, ou programaticamente, por meio do SDK Administrativo COM+. Você pode reciclar processos com base em vários critérios, determinados pelas seguintes propriedades de um objeto COMAdminCatalogObjectna coleção Applications.

  • RecycleLifetimeLimit. O número máximo de minutos que um processo pode executar antes de ser reciclado. O intervalo válido é de 0 a 30.240 minutos (21 dias). O número padrão de minutos é 0, o que indica que o processo não será reciclado ao atingir um limite de vida útil.
  • RecycleMemoryLimit. A quantidade máxima de uso de memória de processo (em kilobytes) antes de reciclar o processo. Se o uso da memória do processo exceder o número especificado por mais de um minuto, o processo será reciclado. O intervalo válido é de 0 a 1.048.576 KB. A quantidade padrão de uso de memória é de 0 KB, o que indica que o processo não será reciclado ao atingir um limite de memória.
  • RecycleCallLimit. O número máximo de chamadas que os objetos de aplicativo podem aceitar antes de reciclar o processo. O intervalo válido é de 0 a 1.048.576 chamadas. O número padrão de chamadas é 0, o que indica que o processo não será reciclado ao atingir um limite de chamadas.
  • LimiteDeAtivaçãoDeReciclagem O número máximo de ativações de objeto de aplicativo a serem aceitas antes de reciclar o processo. O intervalo válido é de 0 a 1.048.576 ativações. O número padrão de ativações é 0, o que indica que o processo não será reciclado ao atingir um limite de ativação.

Além disso, a propriedade RecycleExpirationTimeout do objeto COMAdminCatalogObject é usada para forçar o desligamento de um processo reciclado. Indica o número de minutos a aguardar até à libertação de todas as referências externas a objetos no processo reciclado antes de encerrar o processo à força. O intervalo válido é de 1 a 1440 minutos (24 horas) e o tempo limite de expiração padrão é de 15 minutos. Este valor só é utilizado quando já está determinado que um processo será reciclado com base nos outros critérios.

Você pode selecionar mais de um critério para reciclar um aplicativo. COM+ recicla a aplicação depois de o primeiro critério do conjunto ser satisfeito. Você pode definir o valor de tempo limite de expiração para determinar quanto tempo um processo Dllhost antigo pode gastar concluindo as solicitações de serviço restantes antes de ser desligado à força.

A coleção ApplicationInstances fornece a propriedade HasRecycled, que oferece uma maneira de determinar se o aplicativo já foi reciclado.

Tarefas de reciclagem de aplicativos COM+

RecycleSurrogate