Pool de Objetos - COM+

by Israel Aece 16. August 2004 10:56

Não sou lá um especialista em COM+, mas leio sobre. Aliás, é algo que me tenta, ou seja, estou obsecado para fazer um projeto que utilize componentes no COM+ para trabalhar com Pool de Objetos, Transações, entre outras coisas que o mesmo nos oferece, mas até então não tive oportunidade para isto. :'(

Estou nas horas vagas lendo um livro de Juval Löwy chamado COM + e .NET onde é mostrado como criar e manter componentes .NET no COM+, e lendo sobre Pooling de Objeto COM+, algo que achei interessante foi dito, e gostaria de aqui expor:

O objeto é retornado para o pool quando o cliente libera a sua referencia a ele. Sendo assim, sabemos que objetos gerenciados utilizam a chamada “coleta de lixo” (Garbage Collector), e com isso, o objeto gerenciado só retorna ao pool quando este lixo é coletado.

Isso pode ser de certa forma prejudicial, pois poderá haver um retardo entre o momento em que este objeto não é mais necessário até o momento em que o mesmo retorna ao pool, pois lembre-se que o “coletor de lixo” tem um período/tempo para passar, pois ele não sai varrendo o nosso objeto assim que nós o descartamos. Agora o que de mais interessante achei: como já sabemos, um objeto é colocado em pool porque a sua criação é custosa e se este objeto gastar um tempo esperando que o “coletor de lixo” o recolha, então o aplicativo quase não se beneficia do pool de objetos.

Vi que existem duas maneiras de resolver este problema. A primeira é utilizando JITA e a segunda já requer a participação do cliente, pois como todo componente .NET que tira proveito dos serviços COM+ precisa derivar da classe base ServicedComponent que tem um método público estático chamado DisposeObject(), definido como:

public static void DisposeObject(ServicedComponent sc);

Assim que continuar os testes e a leitura por aqui, dou o feedback do uso do método DisposeObject() e sobre o JITA. ;) Mas claro que se alguém quiser contribuir, fico/ficaremos grato ;)

Tags:

.NET Framework

Comments are closed

Powered by BlogEngine.NET 1.5.0.0
Theme by Mads Kristensen

Sobre

Meu nome é Israel Aece e sou especialista em tecnologias de desenvolvimento Microsoft, atuando como desenvolvedor de aplicações para o mercado financeiro utilizando a plataforma .NET. [ Mais ]

Twitter

Indicações

Introdução ao ASP.NET Web API - e-Book