Konfigurasi HikariCP pada Spring Boot
Contoh Konfigurasi Standard
SPRINGDATASOURCEHIKARICONNECTIONTIMEOUT=30000
SPRINGDATASOURCEHIKARIIDLETIMEOUT=600000
SPRINGDATASOURCEHIKARIMAXLIFETIME=1800000
SPRINGDATASOURCEHIKARIMAXPOOL_SIZE=20
SPRINGDATASOURCEHIKARIMINIDLE=5
Penjelasan Parameter
1. CONNECTION_TIMEOUT Menentukan berapa lama aplikasi menunggu koneksi tersedia dari pool.
- aplikasi cepat timeout
- request gagal walaupun database masih mampu menangani query
- user menunggu terlalu lama ketika database bermasalah
- thread aplikasi dapat tertahan lebih lama
2. IDLE_TIMEOUT Menentukan kapan koneksi idle akan ditutup.
- koneksi sering dibuat ulang
- performa bisa turun karena overhead reconnect
- terlalu banyak koneksi idle menggantung di database
- penggunaan resource database meningkat
3. MAX_LIFETIME Menentukan umur maksimal koneksi sebelum direfresh.
- koneksi terlalu sering direcycle
- performa dapat menurun
- risiko stale connection meningkat
- bisa terkena timeout dari firewall/load balancer/database
4. MAXPOOLSIZE
Menentukan jumlah maksimum koneksi database dalam pool.
- request harus antre menunggu connection
- throughput aplikasi turun
- sering muncul timeout pool exhausted
Jika terlalu besar:
- database overload
- memory database meningkat drastis
- contention antar query meningkat
- bisa menyebabkan ribuan koneksi terbuka
5. MIN_IDLE
Menentukan jumlah minimum koneksi standby.
- aplikasi perlu sering membuat koneksi baru saat traffic naik
- latency awal request meningkat
Jika terlalu besar:
- terlalu banyak koneksi standby tidak terpakai
- resource database terbuang
- dapat menyebabkan connection flood jika nilainya ekstrem
Konfigurasi HikariCP harus disesuaikan dengan kapasitas database dan kebutuhan aplikasi. Nilai terlalu kecil dapat menyebabkan bottleneck dan timeout. Nilai terlalu besar dapat menyebabkan overload database dan ribuan koneksi terbuka.