lunes, 14 de septiembre de 2015

Pool de Conexiones en aplicaciones Web - I

Mirando el otro día como realizar la conexión JPA con un pool de conexiones me di cuenta de un fallo más o menos común y es que se puede usar la clase 'org.springframework.jdbc.datasource.DriverManagerDataSource' para realizar el pool de conexiones. 
  
          
              
          
          
              
          
        
     
        
  
   
  
 
 
  

 
 
 
 

Pero leyendo un poco más hasta en la propia documentación oficial indican que no es un verdadero pool de conexiones y por lo tanto debes de intentar no utilizarlo (Documentación oficial). 

NOTE: This class is not an actual connection pool; it does not actually pool Connections. It just serves as simple replacement for a full-blown connection pool, implementing the same standard interface, but creating new Connections on every call. 

Debido a esto lo mejor es cambiar esta clase para poder utilizar un verdadero pool de conexiones. Hay varias alternativas, desde DBCP (ya existe una versión 2.0 que no esta tan obsoleta como la 1.0) o C3P0 (absorvida por Hibernate) u otros software menos conocidos (como BoneCP o HikariCP).

Para configurar por ejemplo con C3P0 es bastante sencillo. Por un lado añadimos la librería de C3P0 correspondiente mediante maven:

 org.hibernate
 hibernate-entitymanager
 ${hibernate.version}


 org.hibernate
 hibernate-c3p0
 ${hibernate.version}

Y por otro lado, modificamos el fichero de configuración para quitar la 'falsa' clase de Spring y poner la clase que permite el manejo de las conexiones por parte de C3P0. Así de sencillo

 
 
 
 
 
 
 
 
 

No hay comentarios:

Publicar un comentario