JDBC Connection Pool
Connection pooling dalam JDBC (Java Database Connectivity) adalah fitur optimasi yang menyimpan koneksi database dalam cache. Implementasi ini memungkinkan penggunaan kembali koneksi, daripada membuat dan menutup koneksi untuk setiap permintaan, yaitu:
- tanpa JDBC connection pool - membuka koneksi ke layanan database sesuai kebutuhan dan menutupnya ketika halaman selesai memproses permintaan tertentu
- dengan JDBC connection pool - mempertahankan koneksi yang terbuka dalam sebuah pool, sehingga jika sebuah halaman membutuhkan akses ke database, koneksi yang sudah ada akan digunakan (koneksi baru dibuat hanya jika tidak ada koneksi pool yang tersedia)
Mengonfigurasi JDBC pool connection untuk server aplikasi Anda dapat mengurangi penundaan dan konsumsi sumber daya dibandingkan dengan melayani setiap permintaan secara individual. Dengan cara ini, meningkatkan performa database (terutama untuk permintaan yang dilakukan ke aplikasi dinamis berbasis database).
Di sini, baik GlassFish dan Payara Java application servers menyediakan dukungan bawaan untuk mekanisme connection pooling guna meningkatkan akses database. Ikuti langkah sederhana berikut untuk mengonfigurasi JDBC connection pool:
Create Environment
-
Login ke akun PaaS Anda.
-
Klik tombol New Environment.
-
Di wizard topologi, beralih ke tab Java, pilih GlassFish atau Payara sebagai application server Anda dan tambahkan database yang diperlukan (sebagai contoh, kami menggunakan GlassFish dan MySQL). Selanjutnya, atur batas sumber daya untuk container Anda dan ketik nama environment yang diinginkan.
Klik Create, tunggu beberapa menit untuk mendapatkan environment baru Anda, dan lanjutkan ke pembuatan JDBC connection pool.
Prepare Database
-
Klik tombol Open in Browser untuk node MySQL Anda.
Gunakan email yang diterima dengan kredensial database untuk login ke panel phpMyAdmin yang terbuka.
-
Setelah masuk, beralih ke tab User accounts dan klik tautan Add user account. Di dalam formulir yang terbuka, tentukan semua data yang diperlukan dan centang opsi Create database with same name and grant all privileges.
Klik Go di bagian bawah halaman untuk memulai penambahan database dan pengguna untuk connection pooling.
Configure Application Server
-
JDBC MySQL connector disediakan secara default dengan stack (terletak di direktori /opt/glassfish/glassfish/domains/domain1/lib pada server GlassFish Anda atau /opt/payara/glassfish/domains/domain1/lib pada Payara), jadi Anda tidak perlu mengunggahnya secara manual.
-
Login ke Admin panel GlassFish (atau Payara), menggunakan kredensial dari email yang sesuai.
-
Navigasikan ke bagian Resources > JDBC > JDBC Connection Pools dan klik tombol New pada panel alat. Di dalam formulir yang muncul, isi kolom berikut:
- Pool Name - ketik nama yang diinginkan
- Resource Type - pilih item javax.sql.DataSource dari daftar drop-down
- Database Driver Vendor - pilih opsi MySQL
Klik tombol Next untuk melanjutkan.
-
Temukan dan modifikasi Additional Properties berikut:
- User - berikan login database Anda (pooling dalam kasus kami)
- ServerName - tentukan host database Anda tanpa protokol (misalnya, node166355-gf-pooling.jelastic.com)
- Port - tetapkan nomor port ke 3306
- DatabaseName - berikan nama database Anda (pooling dalam kasus kami)
- Password - simpan password untuk pengguna yang ditentukan
- URL dan Url - tetapkan JDBC connection string dalam format jdbc:mysql://{db_host}:3306/; placeholder {db_host} dapat digantikan dengan hostname node (node166355-gf-pooling.jelastic.com) atau alamat IP (192.168.2.57)
Setelah properti ini ditentukan, klik Finish.
-
Untuk memverifikasi aksesibilitas, pilih connection pool yang baru saja Anda buat dan klik tombol Ping. Jika semuanya berfungsi dengan baik, Anda akan melihat pesan pop-up Ping Succeeded.
-
Pergi ke bagian Resources > JDBC > JDBC Resources dan klik tombol New untuk membuat JDBC resources untuk pooling. Di jendela yang terbuka, berikan JNDI Name yang diinginkan dan pilih Pool Name Anda dari daftar drop-down.
Konfirmasi pembuatan resources dengan tombol OK di bagian atas.
Connect from Java Code
Masukkan string berikut ke dalam kelas Java pada kode aplikasi Anda:
InitialContext ctx = new InitialContext();
DataSource ds = (DataSource)ctx.lookup("{resources}");
Connection conn = ds.getConnection();
Di sini, gantikan placeholder {resources} dengan JNDI name Anda dari bagian sebelumnya (yaitu jdbc/mypool dalam kasus kami).
Sekarang, Anda dapat mendeply aplikasi Java Anda ke platform dan menikmati keuntungan dari connection pooling GlassFish dan Payara Micro!