Esse artigo faz parte da revista Clube Delphi Edição 65. Clique aqui para ler todos os artigos desta edição

FAMILY: Verdana; mso-bidi-font-size: 14.0pt">Object Pooling

Normalmente, quando um programa cliente necessita acessar um objeto COM+, uma nova instância desse objeto é colocada na memória. Finalizada a operação, o espaço é automaticamente liberado. Infelizmente, esse processo gera um grande atraso no andamento de nossa aplicação. Além disso, quanto mais objetos instanciados, mais recursos serão necessários. Isso pode acabar nos levando à tão temida queda de performance do sistema.

A solução para tal problema pode estar no uso de uma técnica conhecida como Object Pooling. Desse modo, diversos clientes poderão acessar instâncias que, quando desativadas, permanecerão na memória, permitindo o seu uso por outros programas.

O COM+ permite também que configuremos um número mínimo e máximo de objetos na fila de pooling. Por exemplo, se configurarmos o valor mínimo como cinco e o máximo como dez, quando a aplicação for iniciada, cinco objetos serão instanciados e aguardarão na fila. Da mesma maneira, nunca teremos mais de dez instâncias ociosas. Vamos para a prática.

 

Criando o servidor e configurando o acesso a dados

Inicie o Delphi e adicione uma ActiveX Library (File|New>Other>ActiveX>ActiveX Library). Esse será o projeto do nosso servidor; então, salve-o como “BancoServer.dpr”. Temos agora nosso banco de dados pronto e o projeto do servidor iniciado.

Vamos então criar nosso primeiro Data Module (File|New>Other>Multitier>Transactional Data Module). Para CoClass Name digite “RDMMain”, em Threading Model escolha Both e em Transaction model escolha Requires a transaction. Salve a unit como “uRDMMain.pas”.

...

Quer ler esse conteúdo completo? Tenha acesso completo