Conceitos de pool de objetos COM+
O pool de objetos é um serviço automático fornecido pelo COM+ que permite configurar um componente para que as instâncias de si sejam mantidas ativas em um pool, prontas para serem usadas por qualquer cliente que solicite o componente. Você pode configurar e monitorar administrativamente o pool mantido para um determinado componente, especificando características como tamanho do pool e valores de tempo limite da solicitação de criação. Quando o aplicativo está em execução, o COM+ gerencia o pool para você, manipulando os detalhes de ativação e reutilização de objetos de acordo com os critérios especificados.
Você pode obter benefícios muito significativos de desempenho e dimensionamento reutilizando objetos dessa maneira, especialmente quando eles são escritos para aproveitar ao máximo a reutilização. Com o pool de objetos, você obtém os seguintes benefícios:
- Você pode acelerar o tempo de uso do objeto para cada cliente, considerando a inicialização demorada e a aquisição de recursos do trabalho real que o objeto executa para os clientes.
- Você pode compartilhar o custo de aquisição de recursos caros entre todos os clientes.
- Você pode pré-alocar objetos quando o aplicativo é iniciado, antes que qualquer solicitação do cliente entre.
- Você pode controlar o uso de recursos com o gerenciamento de pool administrativo, por exemplo, definindo um nível máximo de pool apropriado, você pode manter abertas apenas quantas conexões de banco de dados tiver uma licença.
- Você pode configurar administrativamente o pool para aproveitar melhor os recursos de hardware disponíveis, você pode ajustar facilmente a configuração do pool à medida que os recursos de hardware disponíveis mudam.
- Você pode acelerar o tempo de reativação para objetos que usam ativação just-in-time (JIT), enquanto controla deliberadamente como os recursos são dedicados aos clientes.
Escrevendo objetos agrupáveis
Os objetos agrupáveis devem atender a determinados requisitos para permitir que uma única instância de objeto seja usada por vários clientes. Por exemplo, eles não podem manter o estado do cliente ou ter qualquer afinidade de thread. Os objetos transacionais também têm requisitos específicos, em que os recursos gerenciados mantidos por um objeto em pool devem ser inscritos manualmente em uma transação.
Os objetos em pool podem implementar IObjectControl para controlar como eles são reutilizados. Isso permite que eles executem a inicialização quando ativados em um determinado contexto, limpem qualquer estado do cliente na desativação e indiquem quando estão em um estado não reutilizável.
Muitas vezes, é útil escrever objetos agrupáveis de uma forma um tanto genérica para que eles possam ser personalizados administrativamente com uma cadeia de caracteres do construtor. Por exemplo, um objeto pode ser gravado para manter uma conexão ODBC genérica, com um DSN específico especificado administrativamente em uma cadeia de caracteres do construtor.
Os tópicos desta seção, descritos na tabela a seguir, fornecem informações sobre como o pool de objetos funciona em COM+, bem como informações sobre como gravar, configurar e implementar objetos agrupáveis.
Tópico | Descrição |
---|---|
Como funciona o pool de objetos |
Apresenta conceitos básicos. |
Melhorando o desempenho com o pool de objetos |
Fornece detalhes específicos sobre como você pode usar o pool de objetos com mais eficiência. |
Requisitos para objetos agrupáveis |
Fornece detalhes sobre como gravar um objeto que deve ser agrupado. |
Agrupando objetos transacionais |
Fornece detalhes sobre os requisitos especiais que se aplicam a objetos transacionais agrupáveis. |
Controlando o tempo de vida e o estado do objeto |
Descreve como os objetos em pool podem ser implementados para controlar como eles são reutilizados. |