| |||
¿Si no cierras una conexión a una BD, la tienes abierta para la siguiente página? Pues eso; que a lo mejor una vez abierta en una página, si no la cierro, vale para páginas posteriores. Una duda que tengo aparte de esa es: ¿es "malo" o dará error si hago dos conexiones iguales a una base de datos sin haber cerrado la primera? ¿O habrá dos abiertas? ¿Si no la cierras se quedará abierta "para siempre"? |
| ||||
No estoy seguro que la conexión se cierre automáticamente (he leído posturas en donde afirman tanto "que si" como "que no"), pero si que no vale para páginas posteriores (al menos que la coloques en una variable session o aplication. Y en ésto TODOS coinciden: es una práctica totalmente desaconsejable)
__________________ ...___... |
| ||||
Si no la cierras no la puedes usar en páginas posteriores, pero ahí sigue, en el servidor, inutil, consumiendo recursos (pocos o muchos) hasta que el IIS la elimina pasado un tiempo, algo como los recolectores de basura. |
| ||||
Nop. El Recolector de Basura de .NET es implementado en el framework (como el GC de Java), no tanto desde el IIS. En ASP 3 no hay GC. El IIS tiene un método de limpieza de objetos basado simplemente en el "alcance" de la variable, es decir, si es a nivel de página, sesión o aplicación. En general así tu página se tarde X tiempo en ser procesada, hasta que el IIS la termine de procesar, él mismo destruye los objetos. Se ...... recomienda ...... destruir los objetos inmediatamente despues de que los utlizas por razones que ya estan de más comentar. Esto que te comento, mariano, puede ser corroborado en la documentación del IIS (por cierto, hay un apartado interesante en el tema "Rendimiento en el acceso a datos". Saludos |