visual unable the tablas studio specified resource recuperar pueden pudo metadatos metadataexception mapear los framework especificados encontro data conectar con cargar archivos archivo hibernate connection-pooling

hibernate - unable - Hibernación: ¿Qué es el conjunto de conexiones y por qué el predeterminado no es adecuado para la producción?



no se pueden recuperar metadatos (3)

¿Qué es el conjunto de conexiones y por qué el predeterminado no es adecuado para la producción? ¿Alguien puede elaborar sobre esto?

La agrupación de conexiones es una técnica para abrir / preparar / cerrar conexiones. Un mecanismo de agrupación de conexiones es una pieza de software (componente), a la cual usted delega la función de administrar conexiones. Su aplicación solo solicitará una conexión, la usará y la devolverá al grupo. El componente es responsable de abrir N conexiones y dejarlas listas para cuando su aplicación lo solicite. Si una conexión está obsoleta, el mecanismo de agrupación la cerrará y volverá a abrir una nueva. Esto representa un mejor uso de las conexiones, ya que no necesita esperar a que se establezca la conexión durante la ejecución real de su código y no tiene que preocuparse por las conexiones obsoletas.

Hibernate no envía ningún mecanismo real de agrupación de conexiones. Proporciona un administrador de conexión interno, que es muy rudimentario. El motivo es simple: casi (si no todos) los Servidores de aplicaciones (como JBoss AS) y los Contenedores de Servlets (como Tomcat) proporcionan un mecanismo de agrupación de conexiones de forma predeterminada. Por lo tanto, su aplicación no tiene que preocuparse por los detalles al respecto. Solo pide al AS una conexión.

En mi opinión, solo hay dos casos en los que debe preocuparse por la agrupación de conexiones:

  1. Está tratando con una aplicación independiente (que no se ejecuta dentro de un contenedor)
  2. Usted es realmente experto en la agrupación de conexiones y ninguna de las soluciones existentes satisface sus necesidades.

Pero en mi experiencia, la mayoría de las personas que usan una agrupación de conexiones "externa" lo hacen por la falta de conocimiento sobre la agrupación de conexiones y la falta de conocimiento sobre su contenedor.

No estoy muy familiarizado con Hibernate y acabo de comenzar a trabajar en una aplicación web que la utiliza con una base de datos MySQL. Me doy cuenta de que el tutorial de documentación de la comunidad dice:

El grupo de conexión Hibernate incorporado no está diseñado para el uso en producción. Carece de varias características encontradas en cualquier grupo de conexión decente.

¿Alguien puede elaborar sobre esto? ¿Qué es exactamente lo que falta y cuáles son los problemas que tiene la gente con el "predeterminado"? En Google, encontré un sitio web here pero en realidad no explica los problemas, solo lo que deberías usar en su lugar.


Cuando se trata de una aplicación independiente, hay un par de administradores de agrupación que Hibernate no ha mantenido. Hibernate nunca favoreció a uno explícito. A lo largo de los años muchos han venido y se han desvanecido de nuevo. Es realmente difícil juzgar al final cuáles son las mejores. Es bueno comprobar y comparar por ti mismo los proyectos y cuán activos son todavía.

Aquí hay algunas recomendaciones recientes (2017) de agrupación para aplicaciones independientes en orden alfabético:

C3P0 http://www.mchange.com/projects/c3p0/

Hikari https://github.com/brettwooldridge/HikariCP

Vibur http://www.vibur.org/


La agrupación de conexiones predeterminada en hibernación es c3p0 nombre del carácter de star wars. Pero hibernate también es compatible con proxool y se utiliza para anunciar dbcp de apache . Durante un tiempo, el DBCP estuvo inactivo y perdió la gracia.

C3P0 se utiliza en la producción en muchos proyectos. Aunque a veces se encuentra que se comporta mal en el momento pico. Hay varias alternativas. Como, por ejemplo, el nuevo grupo de conexión incluido en Tomcat 7. No lo he probado todavía, pero he escuchado algunos comentarios positivos al respecto.