O que acontece quando não fechar conjuntos de registros em ASP clássico?
-
05-07-2019 - |
Pergunta
Em aplicações legadas no trabalho, eu vejo registros não fechadas espalhadas em lotes de páginas.
- Que consequências que isso tem?
- Será que a estreita ligação automaticamente?
- Os recursos estão liberados no final de cada pedido?
Update:
txn!
Solução
- Que consequências que isso tem?
Recursos não se libertou-se tão rapidamente, e, dependendo do resto do desempenho do código vai sofrer.
- Será que a estreita ligação automaticamente?
- Os recursos estão liberados no final de cada pedido?
No final da execução da página, todas as ligações são terminadas e todos os recursos liberados. Algumas pessoas acreditam que, uma vez que isso acontece, não há necessidade de se preocupar com conexões de fechamento explicitamente e / ou recursos de liberação.
Todas as coisas são iguais, dependência de isto não é algo que é incentivado como você nunca sabe como as coisas vão jogar fora no tráfego pesado - é por isso que todos os bons tutoriais / instrutores vão dizer-lhe para abrir somente quando você precisa, e liberar assim que tiver terminado.
Outras dicas
Fechar conjunto de registos não fecha a conexão
http://www.devguru.com/technologies/ado/QuickRef /recordset_close.html
Você deve conexões sempre perto, logo que possível, para liberá-los de volta para o pool de conexão.
Um sistema que conexões vazamentos vai abrandar e gradualmente grade a um impasse.
Se você não fechá-lo você terá vazamentos de memória, que podem rapidamente consumir os seus recursos. IIS recursos, eventualmente limpas para você, mas não é muito confiável. É mais seguro e mais confiável para fechar explicitamente o conjunto de registros e, em seguida, configurá-lo para nada para liberar recursos. Também não se esqueça perto sua conexão e configurá-lo para nada bem.