Re: [pgsql-es-ayuda] Conexiones con jdbc a Postgre SQL ¿ no cierra la conexion ?

From: Rodriguez Fernando <rodriguez(at)ort(dot)edu(dot)uy>
To: Marcos Saldivar <baron(dot)rojo(dot)cuerdas(dot)de(dot)acero(at)gmail(dot)com>
Cc: List Postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: [pgsql-es-ayuda] Conexiones con jdbc a Postgre SQL ¿ no cierra la conexion ?
Date: 2008-03-07 10:31:26
Message-ID: 47D1197E.5090902@ort.edu.uy
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Marcos Saldivar wrote:
> Estimados recuro a la lista con el siguiente problema:
>
> Estoy desarrollando un pequeño proyecto en Java(version 1.6) con JSP's
> y ServLet's, estoy usando el servidor de aplicaciones Glassfish v2 y
> PostgreSQL 8.3 (postgresql-server-8.3.0-2PGDG.rhel5) los dos con
> soporte para establecer conexiones SSL y el jdbc
> 8.3-603(postgresql-8.3-603.jdbc2ee.jar y postgresql-8.3-603.jdbc4.jar
> con los mismos resultados).
>
> Mi problema surge en que mi proyecto tendra usuarios con limitacion de
> conexiones a solo poder establecer una(y nada mas que una) y a pesar
> de establecer conexiones y cerrarlas(siempre) en algun
> momento(aleatoriamente) se me dispara una excepcion por el maximo de
> conexiones establecidas para el usuario de mi proyecto, cada vez que
> abro y cierro envio un mensaje a log
> para hacer un debug, pero de todas formas en algun momento(de la
> navegacion) se lanza la exepcion.
>
> Mi proyecto en principio establece 2 conexiones basicas la primera
> para consultar una vista de permisos y la segunda, segun la accion que
> desee el usuario(desplegar,editar,crear) pero como les insisto siempre
> cierro estas conexiones. ya e probado que al establecer la conexion
> con la db
> setear a autocommint en true y hacer un commit antes de cerrar la
> conexion pero de todas forma sigue ocurriendo el problema.
>
> El log que me aloja PostgreSQL es:
>
> DEBUG: conexión SSL desde «(anonymous)»
> DEBUG: parse <unnamed>: select id_empleado, nombre, username, cargos
> from vista_empleados order by nombre limit 20
> SENTENCIA: select id_empleado, nombre, username, cargos from
> vista_empleados order by nombre limit 20
> DEBUG: bind <unnamed> a <unnamed>
> DEBUG: proceso de servidor (PID 5009) terminó con código de salida 0
> DEBUG: forked new backend, pid=5011 socket=7
> DEBUG: conexión SSL desde «(anonymous)»
> DEBUG: parse <unnamed>: select entidad || '=' || permisos as permiso
> from detalles_permisos where username = 'vguerra'
> SENTENCIA: select entidad || '=' || permisos as permiso from
> detalles_permisos where username = 'vguerra'
> DEBUG: bind <unnamed> a <unnamed>
> DEBUG: forked new backend, pid=5012 socket=7
> DEBUG: proceso de servidor (PID 5011) terminó con código de salida 0
> DEBUG: conexión SSL desde «(anonymous)»
> DEBUG: parse <unnamed>: select id_empleado, nombre, username, cargos
> from vista_empleados order by nombre limit 20
> SENTENCIA: select id_empleado, nombre, username, cargos from
> vista_empleados order by nombre limit 20
> DEBUG: bind <unnamed> a <unnamed>
> DEBUG: proceso de servidor (PID 5012) terminó con código de salida 0
> DEBUG: forked new backend, pid=5014 socket=7
> DEBUG: conexión SSL desde «(anonymous)»
> DEBUG: parse <unnamed>: select entidad || '=' || permisos as permiso
> from detalles_permisos where username = 'vguerra'
> SENTENCIA: select entidad || '=' || permisos as permiso from
> detalles_permisos where username = 'vguerra'
> DEBUG: bind <unnamed> a <unnamed>
> DEBUG: forked new backend, pid=5015 socket=7
> DEBUG: conexión SSL desde «(anonymous)»
> FATAL: demasiadas conexiones para el rol «vguerra»
> DEBUG: proceso de servidor (PID 5015) terminó con código de salida 1
> DEBUG: proceso de servidor (PID 5014) terminó con código de salida 0
>
> -----------------------------------------------------------------------------------------------------------------
>
> Es posible que al cerrar se demore al punto de que cuando necesite
> abrir de nuevo una conexion estas chocan ?
>
> E buscado informacion en sangoogle y en la pagina de jdbc pero aun no
> encuentro nada concluyente asi que recuro a ustedes para ver si
> alguien a tenido el problema o similar y me pueda dar su experiencia
> ya que me ayudaria mucho
>
> Saludos.-
>
> ps: tabajo localmente en Centos 5.1
> --
> TIP 8: explain analyze es tu amigo
>
Hola, tu proyecto es un poco atipico, ya que generalmente se usa un pool
de conexiones, el cual administra las conexiones (abrir y cerrar, por
cada pagina).
Tu aplicación parece mas una aplicación de escritorio (pero web). No
entiendo porque cerras la conexion luego de leer los permisos, pero te
sugiero que uses
el framework de java de autenticación (javax.security.auth.login, hay en
la web un ejemplo de jaas), de esta manera no tendrias que cerrar y
abrir la conexion.

Saludos Fernando

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Ferro 2008-03-07 10:45:27 offtopic:arboles
Previous Message Miguel Rodríguez Penabad 2008-03-07 10:25:24 Re: TRIGGER de update sobre una tabla