Compartilhar 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 diminuir com o tempo devido a problemas como vazamentos de memória, uso de recursos não escalonáveis e falha no processo. O COM+ fornece a 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. Esse processo Dllhost duplicado atende a todas as solicitações de objeto futuras, o que deixa o Dllhost antigo para concluir a manutenção das solicitações de objeto restantes. O processo Dllhost antigo é desligado quando detecta 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 enfrente uma interrupção de serviço.

Observação

Não é possível reciclar um aplicativo COM+ que foi 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 de seu processo de host.

 

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 COMAdminCatalogObject na 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 quilobytes) antes de reciclar o processo. Se o uso de 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 é 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.
  • RecycleActivationLimit. 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. Ele indica o número de minutos para aguardar a liberaçã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. Esse valor é utilizado somente quando já está determinado que um processo será reciclado com base nos demais critérios.

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

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

Tarefas de reciclagem de aplicativos COM+

ReciclagemSubstituto