Error de Conexión en PostgreSQL: Demasiados Clientes

FATAL : sorry, too many clients already.
  • Save
FATAL : sorry, too many clients already.

Si te has encontrado con el error org.postgresql.util.PSQLException: FATAL: sorry, too many clients already al intentar conectarte a una base de datos PostgreSQL, este artículo te será de gran ayuda.



Causa del Error

postgresql
  • Save

Este error ocurre porque se ha excedido el límite permitido de conexiones en la base de datos. Es probable que hayas abierto múltiples conexiones (por ejemplo, Connection conn = myconn.Open();) y te hayas olvidado de cerrarlas (conn.close()).

Solución Rápida

Para evitar este problema, asegúrate de incluir el siguiente código en la clase que crea la conexión o en el método que la utiliza:

Al incluir este código, la conexión se liberará cuando la clase sea destruida. También puedes usar un bloque finally en tus métodos para asegurarte de que la conexión se cierre correctamente.

Consultas Útiles

Estas consultas te ayudarán a obtener información importante sobre las conexiones en tu base de datos:

Cantidad máxima de conexiones configuradas:

show max_connections;

Conexiones abiertas actualmente:

SELECT * FROM pg_stat_activity;

Cantidad de conexiones utilizadas actualmente:

SELECT COUNT(*) from pg_stat_activity;

Aumentar el Límite de Conexiones

PostgreSQL permite un máximo de 100 conexiones simultáneas por defecto. Si necesitas más, sigue estos pasos:

  1. Encuentra tu archivo postgresql.conf, normalmente ubicado en la carpeta data/postgresql.conf. Si no sabes dónde está, ejecuta: SQLSHOW config_file;
  2. Edita el archivo y busca la línea max_connections.
  3. Cambia el valor de max_connections a un número mayor, según el límite de tu versión de PostgreSQL.
  4. Reinicia la base de datos para que los cambios surtan efecto.

Para saber el máximo de conexiones que soporta tu servidor, ejecuta:

Espero que este artículo te haya sido de ayuda.