Java - Como evitar el error de conexiones

 
Vista:

Como evitar el error de conexiones

Publicado por Alejandra (29 intervenciones) el 28/07/2003 22:31:23
Hola:

Estoy usando el apache tomcat 4.1.24 y el Sql Server 7.0
Despues de que entrar varios usuario al tratar de hacer de nuevo login y que busca en la base de datos,
marca el siguiente error:

java.sql.SQLException: DBCP could not obtain an idle db connection, pool exhausted

Alguien sabe como lo puedo corregir???
gracias...
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Como evitar el error de conexiones

Publicado por Oscar (661 intervenciones) el 29/07/2003 00:04:01
1. Debes permitir mas conexiones en el servidor de SQL
2. Puedes reciclar las conexiones(lo mas correcto), para esto puedes buscar alguna implementacion de un ConnectionPool(si es que no la trae el driver que estas usando) o bien puedes implementarla tu mismo.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como evitar el error de conexiones

Publicado por Alejandra Erives (29 intervenciones) el 29/07/2003 00:54:34
Hola Oscar:

Gracias por responderme tan rápido y es que estamos en inscripciones y no puedo estar prendiendo
y apagando cada rato el tomcat:

En el punto 1 pregunte y me dijeron que era ilimitado el numero de conexiones. Estoy usando el driver siguiente:

<parameter>
<name>driverClassName</name>
<value>com.jnetdirect.jsql.JSQLDriver</value>
</parameter>

La version es: 2.0

El punto dos: Me podrias decir con mas detalle de que se trata.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Como evitar el error de conexiones

Publicado por Oscar (661 intervenciones) el 29/07/2003 01:34:30
Bueno, el punto es el siguiente:
La base de datos normalmente es el cuello de botella en la mayoria de las aplicaciones, y como tal debemos cuidar el uso de este recurso. Una de las formas de hacerlo es haciendo un ConnectionPool, ya que el crear una conexion es algo de lo mas caro y lento que hay.
De lo que se trata un ConnectionPool es crear al principio unas cuantas conexiones(dependiendo de tu aplicacion) y tenerlas dispinibles para cuando te las pidan. Un usuario no crea conexiones, solo las pide al connectionpool. y cuando el usuario termina de usar la conexion le avisa al connectionpool que ya libero la conexion y asi el connectionpool puede prestar esa conexion a otro usuario.
Bueno, como podras imaginarte puede haber muchas formas de implementar esto, pero una de las mas sencillas es la siguiente.
El connectionpool es una clase Singleton que contiene un hashmap, arraylist o cualquier otra coleccion con muchas conexiones. Cuando un usuario pide una conexion el connectionpool la saca de la coleccion para darsela al usuario y cuando el usuario la libera el connectionpool la vuelve a meter a la coleccion. Tu sabras que hacer cuando ya no hay conexiones en la coleccion(esperar a que se libera una conexion o crearla). Este es un esquema muy sencillo, pero no es necesario que tu lo realices desde cero, hay varios ejemplo que te pueden ayudar(para basarte en ellos o incluso utilizarlos tal como estan) que puedes conseguir en:

http://isavix.net/codeexchange/

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar