Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

176
Vistas
La fuente de datos rechazó el establecimiento de la conexión Java

Error:

 Data source rejected establishment of connection, message from server: "Too many connections" couldn't connect! Apr 14, 2017 10:19:02 AM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet [duck.reg.pack.pstcmttc] in context with path [/Duck] threw exception java.lang.NullPointerException

Estoy solicitando información a través de ajax de un servlet.

Código:

 String UDD = null; try { DBConnect Database = new DBConnect(); Connection con = Database.getcon(); String query="SELECT UDD FROM userS WHERE UID=?;"; PreparedStatement ps = con.prepareStatement(query); ps.setString(1, UID); ResultSet rs=ps.executeQuery(); if(rs.next()){ UDD=rs.getString(1); } ps.close(); rs.close(); con.close(); } catch (SQLException e) { e.printStackTrace(); }

Conexión:

 public DBConnect(){ try{ Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection("jdbc:mysql://localhost:10021/db?useSSL=false", "root", "PASSWORD"); st = con.createStatement(); }catch(Exception ex){ System.out.println(ex.getMessage()); System.out.println("couldn't connect!"); } } public Connection getcon(){ DBConnect condb = new DBConnect(); Connection connect = con; return con; }

El usuario realiza la solicitud cada vez que hace clic en un botón y luego ajax realiza la solicitud. Mi servlet responde con más información nueva. La primera solicitud realizada a este servlet funciona bien, pero la segunda vez genera esa excepción.

La excepción se lanza en la línea PreparedStatement ps = con.prepareStatement(query);

Según mi búsqueda en Google, descubrí que esto básicamente se debe a una fuga de conexión y podría solucionarse reiniciando el servidor MySql o cambiando su número de puerto. Pero eso no funcionó para mí.

over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El error "Demasiadas conexiones" indica que se ha alcanzado el límite de la base de datos de conexiones abiertas. Una solución podría ser configurar el máximo de conexiones permitidas en la base de datos.

Probablemente sería más preferible cerrar correctamente las conexiones después de haberlas usado. Esto se puede hacer de forma segura en un intento... finalmente bloquear de la siguiente manera:

 Connection con; try { con = Database.getcon(); } finally { if (con != null) { con.close(); } }

Como Connection implementa AutoClosable , esto se puede simplificar a través de probar con recursos desde Java7:

 try (Connection con = Database.getcon()) { // implementation }

Cerrar la conexión se ocupa de otros recursos de JDBC, así como de los estados de JavaDoc:

Libera la base de datos de este objeto Connection y los recursos JDBC inmediatamente en lugar de esperar a que se liberen automáticamente.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda