entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Statements,ResultSets y conexiones .close();!

Buenas..., tengo unda duda sobre que pasa cuando un Statement, ResultSet o conexion no se cierran,

forzosamente se tiene que cerrar un resultSet? o un Statement?

Siempre que acabo un proyecto trato de ver si no deje conexiones abiertas, pero nunca e entendido con claridad que es lo que pasa si se llega a dejar uno o 2 statements, o resultSet.

1 Respuesta

3votos

kaiba78987 Puntos2300

Hola.

Yo tampoco estoy seguro del por qué (con los ficheros sí), pero pensándolo, he llegado a unas pocas conclusiones de los efectos perjudiciales que puede tener esa práctica:

1) La conexión queda abierta, lo que significa que al menos uno de los hilos del pool de conexiones de la base de datos no será liberado. Si restringes el número de conexiones máximas a, por ejemplo, 100, es posible que en determinados momentos el servicio se vea interrumpido por exceder el número máximo de usuarios de forma ficticia.

2) El número de puertos disponibles de la máquina se reduce, ya que algunos de ellos permanecen escuchando conexiones muertas. Esto puede llevar también a la situación del primer punto, en caso de que el servidor reciba muchas peticiones.

3) Ésta está más basada en la práctica. Para realizar ciertas operaciones de mantenimiento sobre la base de datos, es necesario que no haya conexiones activas. De lo contrario, el SGBD te dará algún tipo de error cuando intentes ejecutar algunas acciones.

4) Me parece recordar que en una ocasión, en Java, se me olvidó cerrar un statement. El efecto colateral que produjo fue que el programa no era capaz de reutilizar la conexión para ejecutar otras consultas.

Espero haber podido orientarte a pesar de no tener demasiada idea.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta