Compartilhar via


Conceitos de portas de ativação de baixa memória COM+

Geralmente, a sincronização não é necessária quando você tem um apartamento de thread único (STA) porque o apartamento fornece a sincronização para você. A sincronização torna-se importante quando você tem um apartamento multithreaded (MTA) e um objeto free-threaded. No passado, objetos de thread livre tinham que lidar com bloqueio. Você pode eliminar a necessidade de usar o bloqueio definindo o atributo de sincronização para um componente.

Problemas de confiabilidade geralmente ocorrem quando os recursos de um servidor não podem reagir com eficiência a picos de carga. Quando um servidor não tem recursos físicos suficientes para atender ao pico de demanda, ele pode esgotar a memória virtual. Isso se torna um problema se o código do usuário ou o código do sistema não manipula corretamente as falhas de alocação de memória. O servidor começa a ficar lento e, à medida que a memória é esgotada, as alocações de memória falham. O servidor executa caminhos de erro para manipular as falhas de alocação. Se um caminho de erro contiver um bug no sistema ou no código do usuário em execução no servidor, será extremamente difícil interceptar e lidar com segurança.

COM+ tenta evitar situações em que esses caminhos de erro precisam ser executados em um servidor. Através do recurso de portas de ativação com pouca memória, o COM+ monitora proativamente a carga de memória no sistema e garante que uma quantidade razoável de memória esteja disponível antes de executar o código do usuário. Se a porcentagem de memória virtual disponível para o aplicativo ficar abaixo de um limite fixo, a ativação falhará antes que um aplicativo ou objeto de servidor COM+ seja criado (conforme mostrado na ilustração abaixo). Ao falhar nessas ativações que normalmente seriam executadas, o recurso de portas de ativação com pouca memória minimiza os problemas associados às alocações de memória no código do usuário, o que aumenta significativamente a confiabilidade do sistema.

Diagram that shows the relationship between a COM+ application and a low-memory activation gate.

O recurso de portas de ativação com pouca memória se aplica somente a componentes COM configurados instalados em um aplicativo COM+.

Como funciona o recurso de portas de ativação com pouca memória

O recurso de portas de ativação com pouca memória usa um nível de limite fixo diferente, dependendo do tipo de ativação. Ao criar um aplicativo de servidor COM+, COM+ permite a ativação se mais de 10% da memória virtual estiver disponível. Se menos de 10% estiver disponível, o COM+ fará uma alocação de teste para descobrir se o arquivo de paginação pode ser expandido para acomodar a nova carga de memória. Se o arquivo de paginação se expandir, o aplicativo do servidor será criado. Se o arquivo de paginação não puder ser expandido, a ativação falhará e a memória não será alocada.

O processo é semelhante ao criar um objeto. Nesse caso, o COM+ permite a ativação se mais de 5% da memória virtual estiver disponível. Se menos de 5% estiver disponível, o COM+ prossegue com uma alocação de teste. Novamente, se a alocação de teste expandir o arquivo de paginação, o objeto será criado. Caso contrário, a ativação falhará.

Os níveis de limite fixos para portas de ativação com pouca memória não são configuráveis no momento. Por esse motivo, não há tarefas associadas a esse recurso.