diff --git a/persist/pom.xml b/persist/pom.xml index bca311aecfbc59c85fac45d4cabbda9335478b82..f0e6cd91348983c39b1d3690336e0de0ff25776f 100644 --- a/persist/pom.xml +++ b/persist/pom.xml @@ -147,10 +147,15 @@ <version>${postgresql-jdbc.version}</version> </dependency> - <dependency> - <groupId>com.zaxxer</groupId> - <artifactId>HikariCP</artifactId> - <version>${hikari.version}</version> + <!--<dependency>--> + <!--<groupId>com.zaxxer</groupId>--> + <!--<artifactId>HikariCP</artifactId>--> + <!--<version>${hikari.version}</version>--> + <!--</dependency>--> + <dependency> + <groupId>c3p0</groupId> + <artifactId>c3p0</artifactId> + <version>${c3p0.version}</version> </dependency> <dependency> diff --git a/persist/src/main/java/lcsb/mapviewer/persist/SpringPersistConfig.java b/persist/src/main/java/lcsb/mapviewer/persist/SpringPersistConfig.java index 651f68bdadb25b1a487082ca6011d1b8431283fd..01a6cb68a7b9f498bd583338f7f80abe05f58461 100644 --- a/persist/src/main/java/lcsb/mapviewer/persist/SpringPersistConfig.java +++ b/persist/src/main/java/lcsb/mapviewer/persist/SpringPersistConfig.java @@ -1,6 +1,6 @@ package lcsb.mapviewer.persist; -import com.zaxxer.hikari.HikariDataSource; +import com.mchange.v2.c3p0.ComboPooledDataSource; import org.hibernate.SessionFactory; import org.hibernate.cfg.Environment; import org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy; @@ -15,6 +15,7 @@ import org.springframework.security.authentication.encoding.Md5PasswordEncoder; import org.springframework.transaction.annotation.EnableTransactionManagement; import javax.sql.DataSource; +import java.beans.PropertyVetoException; import java.util.Properties; @Configuration @@ -27,15 +28,29 @@ public class SpringPersistConfig { return new ConfigurationHolder(); } - @Bean - public HikariDataSource dataSource(ConfigurationHolder config) { - HikariDataSource dataSource = new HikariDataSource(); - dataSource.setDriverClassName("org.postgresql.Driver"); +// @Bean +// public HikariDataSource dataSource(ConfigurationHolder config) { +// HikariDataSource dataSource = new HikariDataSource(); +// dataSource.setDriverClassName("org.postgresql.Driver"); +// dataSource.setJdbcUrl(config.getDbUri()); +// dataSource.setUsername(config.getDbUsername()); +// dataSource.setPassword(config.getDbPassword()); +// dataSource.setIdleTimeout(30000); +// dataSource.setMaximumPoolSize(90); +// dataSource.setConnectionTestQuery("select 1"); +// return dataSource; +// } + + @Bean(destroyMethod = "close") + public ComboPooledDataSource dataSource(ConfigurationHolder config) throws PropertyVetoException { + ComboPooledDataSource dataSource = new ComboPooledDataSource(); + dataSource.setDriverClass("org.postgresql.Driver"); dataSource.setJdbcUrl(config.getDbUri()); - dataSource.setUsername(config.getDbUsername()); + dataSource.setUser(config.getDbUsername()); dataSource.setPassword(config.getDbPassword()); - dataSource.setIdleTimeout(30000); - dataSource.setMaximumPoolSize(90); + dataSource.setMinPoolSize(5); + dataSource.setMaxPoolSize(90); + dataSource.setMaxStatements(5); return dataSource; } diff --git a/pom.xml b/pom.xml index fc0f710b6147b314fe589acbc88945535e11cb19..28413ac14f095f02810c946ab04102bf15fdaa45 100644 --- a/pom.xml +++ b/pom.xml @@ -65,6 +65,7 @@ <postgresql-jdbc.version>42.2.5</postgresql-jdbc.version> <hikari.version>3.2.0</hikari.version> + <c3p0.version>0.9.1.2</c3p0.version> <cglib.version>3.2.8</cglib.version>