JDBC Connection Pool

Connection Pool ใน JDBC (Java Database Connectivity) เป็นลักษณะของการเพิ่มประสิทธิภาพของสิ่งที่เกี่ยวกับ caches database connections การดำเนินการดังกล่าวอนุญาตให้มีการใช้ซ้ำได้ แทนที่จะต้องสร้างหรือปิดแต่ละอย่างของแต่ละคำขอ กล่าวคือ

  • ไม่มี Connection Pool ของ JDBCเปิดการเชื่อมต่อไปยังบริการฐานข้อมูลตามที่ต้องการและปิดเมื่อหน้านั้นได้ทำการประมวลผลคำขอเสร็จสิ้น
  • มี Connection Pool ของ JDBC – ยึดการเปิดเชื่อมต่อของ pool ไว้ ดังนั้นถ้าหน้านั้นมีความจำเป็นที่จะต้องเข้าถึงฐานข้อมูล มันก็จะเป็นแค่การใช้การเชื่อมต่อที่มีอยู่แล้ว (การสร้างใหม่จะถูกสร้างขึ้นก็ต่อเมื่อไม่มีการเชื่อมต่อร่วมกันมาก่อน)

การตั้งค่า Connection Pool ของ JDBC สำหรับแอปพลิเคชันเซิฟเวอร์ของคุณสามารถลดความล่าช้าและการใช้ทรัพยากรเพื่อให้บริการของแต่ละคำขอเป็นรายบุคคล ในลักษณะดังกล่าวเป็นการเสริมสร้างประสิทธิภาพการทำงานของฐานข้อมูล (โดยเฉพาะอย่างยิ่งสำหรับการร้องขอไปยังแอปพลิเคชันที่ขับเคลื่อนด้วยฐานข้อมูลแบบไดนามิก

ทั้งนี้ ทั้ง GlassFish และ Payara Java application servers ให้การรองรับแบบ Native สำหรับกลไกการเชื่อมต่อ Pooling เพื่อที่เพิ่มประสิทธิภาพในการเข้าถึงฐานข้อมูล 

ทำตามขั้นตอนง่าย ๆ ด้านล่างเพื่อตั้งค่าการเชื่อมต่อ Connection Pool ของ JDBC

การสร้าง Environment

1.ล็อกอินเข้าด้วยบัญชี Ruk-Com Cloud

2.กดปุ่ม New environment

3.ในส่วนของ topology wizard สลับไปยังแท็บ Java เลือก GlassFish หรือ Payara ตามแอปพลิเคชันเซิฟเวอร์ของคุณและเพิ่มสิ่งที่จำเป็นต้องใช้กับฐานข้อมูล (ตามตัวอย่าง เราใช้ GlassFish และ MySQL คู่กัน) ถัดไป กำหนดขีดจำกัดทรัพยากรของ Container และตั้งชื่อสภาพแววดล้อมที่ต้องการ

กด Create รอสักครู่เพื่อที่จะได้สภาพแวดล้อมใหม่และดำเนินการสร้าง connection pool ของ JDBC ต่อไป

การจัดเตรียม Environment

1.กดปุ่ม Open in Browser สำหรับ MySQL node

ใช้อีเมลที่ได้รับพร้อมกับรายละเอียดของฐานข้อมูลเพื่อล็อกอินเปิดพาเนล phpMyAdmin

2.เมื่อเข้ามาครั้งแรก ให้สลับไปที่แท็บ User accounts และคลิกที่ลิงก์ Add user account ในหน้าที่เปิดอยู่ให้ทำการใส่ข้อมูลที่จำเป็นต่าง ๆ ลงไปในฟอร์มและติ๊กตัวเลือก Create database with same name and grant all privileges 

การตั้งค่า Application Server

1. ตัวเชื่อมต่อ MySQL ของ JDBC นั้นตั้งค่าเริ่มต้นเอาไว้แบบ stack (ตั้งอยู่ที่ไดเรกทอรี /opt/glassfish/glassfish/domains/domain1/lib บนเซิฟเวอร์ GlassFish ของคุณ หรือ /opt/payara/glassfish/domains/domain1/lib บน Payara) ดังนั้นคุณไม่จำเป็นที่จะต้องอัปโหลดด้วยตนเอง

2.ล็อกอินเข้าสู่พาเนลแอดมินของ GlassFish (หรือ Payara) โดยใช้รายละเอียดที่ได้รับจากอีเมล

3.ไปที่ส่วนของ Resources > JDBC > JDBC Connection Pools และคลิกปุ่ม new บนพาเนลเครื่องมือในฟอร์มที่ปรากฏ ให้กรอกข้อมูลตามนี้

  • Pool Name – ตั้งชื่อได้ตามต้องการ
  • Resource Type – เลือก javax.sql.DataSource จากลิสรายการ
  • Database Driver Vendor – เลือก MySQL 

กดปุ่ม next เพื่อดำเนินการต่อ

4.หาและแก้ไขในส่วนของ Additional Properties ได้ตามต่อไปนี้

  • User – ส่วนที่ให้การล็อกอินเข้าสู่ฐานข้อมูล (ในกรณีของเราคือ pooling)
  • ServerName – ระบุโฮสฐานข้อมูลของคุณโดยไม่ต้องมีโปรโตคอล (เช่น node166355-gf-pooling.jelastic.com)
  • Port – ตั้งเลขพอร์ตเป็น 3306
  • DatabaseName – ส่วนที่ให้ตั้งชื่อฐานข้อมูล (ในกรณีของเราคือ pooling)
  • Password – สำหรับเก็บรหัสผ่านตามที่ผู้ใช้งานระบุ
  • URL and Url – ตั้งค่า connection string ของ JDBC ใน jdbc:mysql://{db_host}:3306/ format; ในที่นี้ ,ช่อง {db_host}  สามารถแทนที่ได้ด้วยชื่อโฮสของโหนดอื่น ๆ (node166355-gf-pooling.jelastic.com) หรือไอพีแอดเดรส (192.168.2.57)

หลังจากระบุคุณสมบัติต่าง ๆ แล้วให้คลิก Finish

5. เพื่อที่จะตรวจสอบการเข้าถึง เลือกการเชื่อมต่อ pool ที่คุณเพิ่งสร้างขึ้นมาและกดปุ่ม Ping ถ้าทุกอย่างเป็นไปอย่างราบรื่น จะเห็นข้อความเด้งขึ้นมาว่า Ping Succeeded

6. ไปที่ส่วนของ Resources > JDBC > JDBC Resources และเลือกปุ่ม New เพื่อสร้างทรัพยากรของ JDBC สำหรับการ pooling ในหน้าต่างที่เปิดจพเป็นที่จะต้องใส่ข้อมูลในส่วนของของ JNDI Name และเลือกส่วนของ Pool Name จากลิสรายการ

ยืนยันการสร้างทรัพยากรด้วยการกดปุ่ม OK ด้านบน

การเชื่อมต่อ Code ของ Java

นำโค้ดเหล่านี้ไปวางไว้ในส่วนของ Java class ของโค้ดแอปพลิเคชัน

นี่คือส่วนช่องว่าง {resources} จะถูกแทนด้วยชื่อของ JNDI ที่ได้ทำการสร้างไว้ก่อนหน้านี้ (เช่น jdbc/mypool ในกรณีของเรา)

ตอนนี้คุณสามารถปรับใช้แอปพลิเคชันจาวาของคุณกับ Ruk-Com Cloud และเพลิดเพลินไปกับสิทธิประโยชน์ของ GlassFish และ Payara Micro connection pooling