Reputation: 2783
I'm trying to use Spring Boot with HikariDataSource, but I'm getting the error. Broken pipe how is it better to configure or is it better to use c3p0? I'm using this config
spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
spring.datasource.type=com.zaxxer.hikari.HikariDataSource
spring.datasource.maxLifetime=200000
spring.datasource.idleTimeout=200000
spring.jpa.database=POSTGRESQL
spring.datasource.maximumPoolSize=5
spring.datasource.maxActive=5
spring.datasource.platform=postgres
spring.jpa.show-sql=false
spring.jpa.database-platform=org.hibernate.dialect.PostgreSQLDialect
spring.datasource.driver-class-name=org.postgresql.Driver
#spring.datasource.url=jdbc:postgresql://localhost:5432/db_dnaso
spring.datasource.url=jdbc:postgresql://172.16.1.10:5432/db_dnaso
#spring.datasource.url=jdbc:postgresql://ci.lumera.com.br:5432/db_dnaso
spring.datasource.username=postgres
spring.datasource.password=dna44100
and I use:
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>2.5.1</version>
</dependency>
and springboot version 1.4.2.RELEASE
Upvotes: 0
Views: 3431
Reputation: 54
try to use this Configuration to define a data source
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
entityManagerFactoryRef = "eaEntityManagerFactory",
transactionManagerRef = "eaTransactionManager",
basePackages = {"com.core.persistance.xx"
})
public class EaDbConfig {
@Bean(name = "eaDataSourceProperties")
@ConfigurationProperties("spring.datasource-ea")
public DataSourceProperties eaDataSourceProperties() {
return new DataSourceProperties();
}
@Bean(name = "eaDataSource")
@ConfigurationProperties("spring.datasource-ea.configuration")
public DataSource eaDataSource(@Qualifier("eaDataSourceProperties") DataSourceProperties eaDataSourceProperties) {
return eaDataSourceProperties.initializeDataSourceBuilder().type(HikariDataSource.class).build();
}
@Bean(name = "eaEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean eaEntityManagerFactory(
EntityManagerFactoryBuilder eaEntityManagerFactoryBuilder, @Qualifier("eaDataSource") DataSource eaDataSource) {
Map<String, String> eaJpaProperties = new HashMap<>();
/* eaJpaProperties.put("hibernate.dialect", "org.hibernate.dialect.H2Dialect");
eaJpaProperties.put("hibernate.hbm2ddl.auto", "create-drop");*/
return eaEntityManagerFactoryBuilder
.dataSource(eaDataSource)
.packages("com.core.persistance.xx.domain"
)
.persistenceUnit("eaDataSource")
.properties(eaJpaProperties)
.build();
}
@Bean(name = "eaTransactionManager")
public PlatformTransactionManager eaTransactionManager(
@Qualifier("eaEntityManagerFactory") EntityManagerFactory eaEntityManagerFactory) {
return new JpaTransactionManager(eaEntityManagerFactory);
}
}
---------------
config properties :
# source configuration
- spring.datasource-ea.url=url
- spring.datasource-ea.username=username
- spring.datasource-ea.password=password
- spring.datasource-ea.driverClassName=oracle.jdbc.OracleDriver
Upvotes: 0
Reputation: 743
Try to add @bean into your configuration class.
@Bean(name = "hikariDataSource")
@Qualifier("hikariDataSource")
@ConfigurationProperties(prefix = "spring.datasource.hikari")
public DataSource hikariDataSource() {
log.info("Building hikariDataSource......");
return DataSourceBuilder.create().type(com.zaxxer.hikari.HikariDataSource.class).build();
}
And configuring your properties file.
spring.datasource.hikari.jdbc-url=jdbc:mysql://127.0.0.1:3306/test
spring.datasource.hikari.username=root
spring.datasource.hikari.password=root
spring.datasource.hikari.driver-class-name=com.mysql.jdbc.Driver
Upvotes: 1