Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
170
Assunto : ASP
Titulo: Utilizando componentes Free Threaded com ASP

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Como muitos de vocês sabem guardar componentes em sessão ou aplicação é uma prática não recomendada. Por que ?

O IIS cria um pool de threads para atender as requisições dos clients. Quando um client faz uma requisição ele é atendido pela primeira thread disponível.

Quando um componente é inserido em ambiente de sessão ou aplicação isso não mais pode acontecer. O client só poderá ser atendido pela mesma thread, mesmo que existam outras disponíveis. Isso gera um gargalo de respostas no servidor que tende a derruba-lo.

No caso do ambiente de aplicação isso é ainda um pouco pior que com o ambiente de sessão, pois nesse caso o ASP cria uma thread em separado para executar o componente, o que gera a necessidade de marshaling para transferencia de parâmetros de uma thread para outra.

No Windows 2000/COM+ surgiu um novo Threading Model para os componentes : Free Threaded. Um componente Free Threaded permite que o IIS faça o pool de threads e atenda ao client utilizando qualquer thread, não necessariamente a thread original.

Componentes Free Threaded não podem ser criados no VB, apenas no C++. Porém temos uma novidade importante : O Recordset do ADO pode ser configurado para rodar como Free Threaded. Isso significa que podemos colocar em sessão o recordset do ADO desde que o servidor esteja devidamente configurado para isso.

Para configurar o registry para que o ADO seja free threaded é necessário executar um bat chamado makfre15.bat que encontra-se normalmente em \Program Files\Common\System\ADO.

Outra questão importante é que o recordset inserido em sessão precisa estar desconectado. Resumindo :

1) Objetos free-threaded podem ser inseridos em sessão
2) O recordset do ADO pode ser marcado como free-threaded
3) O recordset do ADO precisa estar desconectado para ser colocado em sessão
4) ISSO NÃO FUNCIONA COM ACCESS
5) Objetos connection não podem ser colocados em sessão ou aplicação.

Mesmo sabendo que o Recordset pode ser colocado em sessão evite exageros, você poderá estar sobrecarregando a memória do servidor.


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br