Foros del Web » Programación para mayores de 30 ;) » Java »

Cerrar conexiones con Hibernate

Estas en el tema de Cerrar conexiones con Hibernate en el foro de Java en Foros del Web. Hola, amigos. Tengo una duda. aqui con Hibernate + Sql Server 2000 Según tenia entendido, con hibernate se 'olvidaba' del manejo de sesiones de conexion, ...
  #1 (permalink)  
Antiguo 14/06/2011, 18:49
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Cerrar conexiones con Hibernate

Hola, amigos. Tengo una duda. aqui con Hibernate + Sql Server 2000

Según tenia entendido, con hibernate se 'olvidaba' del manejo de sesiones de conexion, por que internamente hibernate lo hacia.

sin embargo, cuando intenté separar mi base de datos en el SQL Server Enterprise Manager, me indicó que tenía 18 conexiones que utilizaban la base de datos, bueno asumí que eran algunos usuarios, me espere unas horas, y seguia marcando las 18 conexiones, y solo tenia abierto el analizador de consultas, lo cerré y como era de esperarse se redujo a 17 conexiones.

* Entonces mi pregunta es necesario realizar un sesionHibernate.close(), despues de cada sesionHibernate.commit()?

* No habrá alguna configuración en el archivo .cfg.xml, para que lo haga, en automatico?

Gracias de antemano, un saludo a todos.
  #2 (permalink)  
Antiguo 15/06/2011, 11:40
 
Fecha de Ingreso: junio-2011
Mensajes: 16
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: Cerrar conexiones con Hibernate

De preferencia siempre cierrar la sesion desto tu archivo de acciones, una vez que termines de realizar tus operaciones
Saludos
  #3 (permalink)  
Antiguo 15/06/2011, 21:47
 
Fecha de Ingreso: enero-2008
Mensajes: 197
Antigüedad: 16 años, 3 meses
Puntos: 10
Respuesta: Cerrar conexiones con Hibernate

Verifica bien tu configuracion de Hibernate, no deberias cerrar las conexiones. Es posible que tengas un pool de conexiones por lo que siempre estaran activas algunas, hay forma de expirar estas conexiones en estado "idle" aunque sql server siempre ha sido un dolor de cabeza verifica bien tu configuracion y mecanismos de administracion de las sesiones. saludos!
  #4 (permalink)  
Antiguo 15/06/2011, 22:17
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Respuesta: Cerrar conexiones con Hibernate

Gracias por contestar,

tenia esa configuracion (pool de conexiones ), pero se lo he eliminado ya hace tiempo, lo unico que tengo es esto
Cita:
<property name="dialect">
org.hibernate.dialect.SQLServerDialect
</property>
<property name="current_session_context_class">thread</property>

<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>

<property name="transaction.factory_class">
org.hibernate.transaction.JDBCTransactionFactory
</property>
Antes de ahi, tengo los parametros de conexion , y los mapeos,
gracias.
  #5 (permalink)  
Antiguo 18/06/2011, 11:08
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Respuesta: Cerrar conexiones con Hibernate

Hola otra vez,
Probé lo que me decia, de cerrar las conexiones despues del comit,
así lo hice, pero me marco el error, q La sesion Ya se habia se cerrado

Cita:
Caused by: org.hibernate.SessionException: Session was already closed
Entonces. como elimino esas conexiones abiertas? tampoco tengo el pool de conexiones como me habian comentado,

gracias de antemano
  #6 (permalink)  
Antiguo 18/06/2011, 23:32
Avatar de FiruzzZ  
Fecha de Ingreso: diciembre-2007
Ubicación: en casa
Mensajes: 470
Antigüedad: 16 años, 4 meses
Puntos: 41
Respuesta: Cerrar conexiones con Hibernate

Creo que todos los ORM mantienen entre 5 y 8 conexiones con las bases de datos, si tenés 17 aprox. me atrevería a decir que estás usando mal los EntityManagerFactory y por ende mas de un EntityManager ACTIVO AL MISMO TIEMPO (lo cual es excepcionalmente necesario).

El manejo de sessions depende de que tipo de transacción estés usando
transaction-type="RESOURCE_LOCAL" o "JTA"
__________________
BadProgrammerException!

Última edición por FiruzzZ; 18/06/2011 a las 23:40
  #7 (permalink)  
Antiguo 21/06/2011, 09:22
 
Fecha de Ingreso: abril-2011
Ubicación: mexico
Mensajes: 104
Antigüedad: 13 años
Puntos: 10
Respuesta: Cerrar conexiones con Hibernate

creo que es lo primero qe menciones
Digamos, yo tengo mi clase que instancía la configuracion de Hibernate, el HibernateUtil,

y hago esto: Session sesionH = HibernateUtil.getSessionFactory().getCurrentSessio n();

Cada vez,. que necesito realizar una consulta, Pero según tengo entendido, con esto lo que hago es buscar la misma sesión que vengo usando en el sistema.

Investigaré un poco más sobre esto: transaction-type="RESOURCE_LOCAL" o "JTA"

Por cierto, agregé un pool, de conexiones, CP30 algo así, para que hibernate maneje bien las pool, (Segun estuve leyendo) en mi maquina local funciona solo tengo 1 conexion activa, pero me faltaria probarlo ya con usuarios, realeas.

gracias y un saludo

Etiquetas: cerrar, conexiones, hibernate
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:41.