Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Select an option

  • Save laxman1129/ea2adaff0f31e4a4c7c7f32fb666e433 to your computer and use it in GitHub Desktop.

Select an option

Save laxman1129/ea2adaff0f31e4a4c7c7f32fb666e433 to your computer and use it in GitHub Desktop.

Revisions

  1. laxman1129 created this gist Jan 9, 2023.
    62 changes: 62 additions & 0 deletions Switch Atomikos Connection Pooling to HikariCP
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,62 @@
    To switch from Atomikos to Hikari connection pooling in a Spring Boot application, you will need to do the following:

    Exclude the Atomikos dependency from your project:


    <dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-jta-atomikos</artifactId>
    <exclusions>
    <exclusion>
    <groupId>com.atomikos</groupId>
    <artifactId>transactions-jta</artifactId>
    </exclusion>
    <exclusion>
    <groupId>com.atomikos</groupId>
    <artifactId>transactions-jdbc</artifactId>
    </exclusion>
    </exclusions>
    </dependency>
    Add the Hikari dependency to your project:


    <dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>3.4.5</version>
    </dependency>
    Configure the DataSource bean in your Spring configuration class:


    @Bean
    @ConfigurationProperties(prefix = "spring.datasource.hikari")
    public DataSource dataSource() {
    return DataSourceBuilder.create().type(HikariDataSource.class).build();
    }
    Add the Hikari configuration properties to your application.properties or application.yml file:


    spring:
    datasource:
    type: com.zaxxer.hikari.HikariDataSource
    validation-query: SELECT 1 FROM DUAL
    min-idle: ${DS_MIN_IDLE:5}
    max-idle: ${DS_MAX_IDLE:15}
    max-active: ${DS_MAX_ACTIVE:20}
    initial-size: ${DS_INIT_SIZE:5}
    test-on-borrow: true
    test-on-return: true
    test-while-idle: true
    time-between-eviction-runs-millis: ${DS_EVIC_TIMEOUT:5000}
    hikari:
    jdbc-url: ${DB_URL:jdbc:oracle:thin:}
    username: ${DB_USERNAME:}
    password: ${DB_PASSWORD:}
    driver-class-name: oracle.jdbc.driver.OracleDriver
    idle-timeout: ${HIK_IDLE_TIMEOUT:60000}
    minimum-idle: ${HIK_MIN_IDLE:5}
    maximum-pool-size: ${HIK_MAX_POOL_SIZE:20}
    connection-timeout: ${HIK_CON_TIMEOUT:30000}
    leak-detection-threshold: 60000
    This should configure your Spring Boot application to use the Hikari connection pool.