or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

docs

advanced.mdconfiguration.mddatasource.mdhibernate.mdindex.mdmetrics.mdmonitoring.md
tile.json

tessl/maven-com-zaxxer--hikaricp

Ultimate JDBC Connection Pool providing high-performance database connection management with zero-overhead and comprehensive features.

Workspace
tessl
Visibility
Public
Created
Last updated
Describes
mavenpkg:maven/com.zaxxer/HikariCP@5.1.x

To install, run

npx @tessl/cli install tessl/maven-com-zaxxer--hikaricp@5.1.0

index.mddocs/

HikariCP

HikariCP is a high-performance JDBC connection pool library providing zero-overhead database connection management with a focus on speed, simplicity, and reliability. At approximately 130Kb, it's a lightweight solution that offers comprehensive connection pooling features including connection validation, leak detection, transaction rollback on return, and extensive monitoring capabilities.

Package Information

  • Package Name: HikariCP
  • Package Type: Maven
  • Group ID: com.zaxxer
  • Artifact ID: HikariCP
  • Language: Java
  • Installation: Add to your Maven or Gradle dependencies

Maven

<dependency>
    <groupId>com.zaxxer</groupId>
    <artifactId>HikariCP</artifactId>
    <version>5.1.0</version>
</dependency>

Gradle

implementation 'com.zaxxer:HikariCP:5.1.0'

Core Imports

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;

Basic Usage

import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource;
import java.sql.Connection;
import java.sql.SQLException;

// Create configuration
HikariConfig config = new HikariConfig();
config.setJdbcUrl("jdbc:mysql://localhost:3306/mydb");
config.setUsername("user");
config.setPassword("password");
config.setMaximumPoolSize(10);

// Create DataSource
HikariDataSource dataSource = new HikariDataSource(config);

// Get connection and use it
try (Connection connection = dataSource.getConnection()) {
    // Use connection for database operations
    // Connection is automatically returned to pool when closed
}

// Shutdown when application terminates
dataSource.close();

Architecture

HikariCP is built around several key components:

  • HikariConfig: Configuration management with validation and runtime tuning
  • HikariDataSource: Main DataSource implementation and connection pool interface
  • Connection Pool: High-performance connection management with intelligent algorithms
  • JMX Management: Runtime monitoring and configuration through MBeans
  • Metrics Integration: Support for Dropwizard, Micrometer, and Prometheus metrics
  • Framework Integration: Built-in support for Hibernate and JNDI environments

Capabilities

Configuration Management

Comprehensive configuration system with validation, property file support, and runtime tuning capabilities.

public class HikariConfig implements HikariConfigMXBean {
    // Constructors
    public HikariConfig();
    public HikariConfig(Properties properties);
    public HikariConfig(String propertyFileName);
    
    // Core connection settings
    public void setJdbcUrl(String jdbcUrl);
    public void setUsername(String username);
    public void setPassword(String password);
    public void setDriverClassName(String driverClassName);
    
    // Pool sizing
    public void setMaximumPoolSize(int maxPoolSize);
    public void setMinimumIdle(int minIdle);
    
    // Timeouts (in milliseconds)
    public void setConnectionTimeout(long connectionTimeoutMs);
    public void setIdleTimeout(long idleTimeoutMs);
    public void setMaxLifetime(long maxLifetimeMs);
    public void setValidationTimeout(long validationTimeoutMs);
}

Configuration

DataSource and Connection Management

High-performance DataSource implementation with automatic connection lifecycle management, leak detection, and pool monitoring.

public class HikariDataSource extends HikariConfig implements DataSource, Closeable {
    // Constructors
    public HikariDataSource();
    public HikariDataSource(HikariConfig configuration);
    
    // DataSource interface
    public Connection getConnection() throws SQLException;
    
    // Pool management
    public boolean isRunning();
    public void evictConnection(Connection connection);
    public void close();
    public boolean isClosed();
}

DataSource Usage

JMX Monitoring and Management

Runtime monitoring and configuration management through JMX MBeans with real-time pool statistics and configuration tuning.

public interface HikariPoolMXBean {
    // Pool statistics
    int getIdleConnections();
    int getActiveConnections();
    int getTotalConnections();
    int getThreadsAwaitingConnection();
    
    // Pool control
    void softEvictConnections();
    void suspendPool();
    void resumePool();
}

public interface HikariConfigMXBean {
    // Runtime configuration changes
    void setConnectionTimeout(long connectionTimeoutMs);
    void setMaximumPoolSize(int maxPoolSize);
    void setMinimumIdle(int minIdle);
    String getPoolName();
}

Monitoring and JMX

Metrics Integration

Built-in support for popular metrics libraries including Dropwizard Metrics, Micrometer, and Prometheus with detailed connection pool telemetry.

// Dropwizard/Codahale Metrics
public class CodahaleMetricsTrackerFactory implements MetricsTrackerFactory {
    public CodahaleMetricsTrackerFactory(MetricRegistry registry);
}

// Micrometer Metrics  
public class MicrometerMetricsTrackerFactory implements MetricsTrackerFactory {
    public MicrometerMetricsTrackerFactory(MeterRegistry registry);
}

// Prometheus Metrics
public class PrometheusMetricsTrackerFactory implements MetricsTrackerFactory {
    public PrometheusMetricsTrackerFactory();
    public PrometheusMetricsTrackerFactory(CollectorRegistry collectorRegistry);
}

Metrics Integration

Hibernate Integration

Native Hibernate connection provider implementation for seamless integration with Hibernate ORM applications.

public class HikariConnectionProvider implements ConnectionProvider, Configurable, Stoppable {
    public Connection getConnection() throws SQLException;
    public void closeConnection(Connection conn) throws SQLException;
    public void configure(Map props) throws HibernateException;
}

public class HikariConfigurationUtil {
    public static HikariConfig loadConfiguration(Map props);
}

Hibernate Integration

Advanced Features

JNDI factory support, custom exception handling, and advanced configuration options for enterprise deployments.

// JNDI Support
public class HikariJNDIFactory implements ObjectFactory {
    public synchronized Object getObjectInstance(Object obj, Name name, Context nameCtx, Hashtable<?, ?> environment) throws Exception;
}

// Custom Exception Handling
public interface SQLExceptionOverride {
    enum Override { CONTINUE_EVICT, DO_NOT_EVICT }
    default Override adjudicate(final SQLException sqlException);
}

Advanced Features

Types

Core Configuration Types

public class HikariConfig implements HikariConfigMXBean {
    // Configuration validation
    public void validate();
    public void copyStateTo(HikariConfig other);
    
    // Property management
    public void addDataSourceProperty(String propertyName, Object value);
    public Properties getDataSourceProperties();
    public void setDataSourceProperties(Properties dsProperties);
}

Metrics Integration Types

public interface IMetricsTracker extends AutoCloseable {
    default void recordConnectionCreatedMillis(long connectionCreatedMillis);
    default void recordConnectionAcquiredNanos(final long elapsedAcquiredNanos);
    default void recordConnectionUsageMillis(final long elapsedBorrowedMillis);
    default void recordConnectionTimeout();
    default void close();
}

public interface MetricsTrackerFactory {
    IMetricsTracker create(String poolName, PoolStats poolStats);
}

public abstract class PoolStats {
    public PoolStats(final long timeoutMs);
    public int getTotalConnections();
    public int getIdleConnections();
    public int getActiveConnections();
    public int getPendingThreads();
    public int getMaxConnections();
    public int getMinConnections();
}