พูลการเชื่อมต่อ – การพัฒนาแอปพลิเคชันมือถือ บริการเว็บ สถาปัตยกรรม SOA - เทคโนโลยี
ข้ามไปที่เนื้อหา

การรวมการเชื่อมต่อ - การพัฒนาแอพมือถือ บริการเว็บ สถาปัตยกรรม SOA

โฆษณา

การรวมการเชื่อมต่อคืออะไร?

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

การควบคุมตัวเลือกการรวมการเชื่อมต่อ

การรวมการเชื่อมต่อถูกเปิดใช้งานตามค่าเริ่มต้นเมื่อสร้างวัตถุการเชื่อมต่อ ADO.NET คุณสามารถควบคุมพฤติกรรมการรวมการเชื่อมต่อ (หรือปิดใช้งานการรวมการเชื่อมต่อทั้งหมด) ได้โดยการตั้งค่าคำสำคัญสตริงการเชื่อมต่อเฉพาะสำหรับการรวมการเชื่อมต่อ ตัวอย่างเช่น หากต้องการปิดใช้งานการรวมการเชื่อมต่อโดยเฉพาะ ให้ตั้งค่า Pooling=False ในสตริงการเชื่อมต่อของคุณ ตารางที่ 5-7 แสดงรายการคีย์เวิร์ดสตริงการเชื่อมต่อที่สามารถใช้เพื่อควบคุมวิธีที่การเชื่อมต่อเฉพาะโต้ตอบกับพูลการเชื่อมต่อ ผู้ให้บริการบางรายไม่สามารถใช้คำสำคัญได้ทั้งหมด ตัวอย่างเช่น ผู้ให้บริการ OLE DB จะควบคุมพูลการเชื่อมต่อ (หรือที่เรียกว่าทรัพยากรหรือพูลเซสชัน) ตามค่าที่ตั้งไว้สำหรับคำสำคัญ OLE DB Services ในสตริงการเชื่อมต่อ

สตริงการเชื่อมต่อพูลการเชื่อมต่อตารางนอกเหนือจากคุณสมบัติสตริงการเชื่อมต่อที่ควบคุมพฤติกรรมการทำพูลการเชื่อมต่อแล้ว ยังมีวิธีการที่พร้อมใช้งานบนออบเจ็กต์การเชื่อมต่อที่อาจส่งผลต่อการทำพูลการเชื่อมต่ออีกด้วย โดยทั่วไปวิธีการที่ใช้ได้จะใช้เมื่อคุณปิดการเชื่อมต่อในแอปพลิเคชันของคุณและคุณทราบว่าจะไม่ถูกนำมาใช้อีก วิธีนี้จะล้างพูลการเชื่อมต่อโดยละทิ้งการเชื่อมต่อแทนที่จะส่งคืนให้กับพูลเมื่อปิด การเชื่อมต่อใดๆ ที่มีอยู่แล้วในพูลและเปิดอยู่จะถูกยกเลิกในครั้งถัดไปที่ปิด ตารางที่ 5-8 แสดงรายการวิธีการที่ใช้ได้สำหรับการโต้ตอบกับพูลการเชื่อมต่อ

การกำหนดค่าการเชื่อมต่อเพื่อใช้การรวมการเชื่อมต่อ

ตามค่าเริ่มต้น ผู้ให้บริการข้อมูล .NET Framework ทั้งหมดที่มีอยู่ใน ADO.NET ได้เปิดใช้งานการรวมการเชื่อมต่อ แต่ระดับการควบคุมที่พร้อมใช้งานสำหรับการทำงานกับการรวมการเชื่อมต่อจะแตกต่างกันไปขึ้นอยู่กับผู้ให้บริการที่ใช้งาน

การกำหนดค่าการรวมการเชื่อมต่อด้วยการเชื่อมต่อ SQL Server

ตามค่าเริ่มต้น วัตถุ SqlConnection ใช้การรวมการเชื่อมต่อโดยอัตโนมัติ แต่ละครั้งที่คุณเรียก Sqlconnection.Open ด้วยสตริงการเชื่อมต่อเฉพาะ พูลใหม่จะถูกสร้างขึ้น ควบคุมพฤติกรรมพูลการเชื่อมต่อโดยการตั้งค่าคีย์เวิร์ดพูลการเชื่อมต่อในสตริงการเชื่อมต่อตามที่อธิบายไว้ก่อนหน้าในตาราง 5-7 ตัวอย่างเช่น พิจารณาการเชื่อมต่อที่คุณต้องการตั้งค่าขนาดพูลขั้นต่ำ ด้วยการกำหนดค่าที่มากกว่าศูนย์ให้กับคีย์เวิร์ด Mîn Pool Size คุณมั่นใจได้ว่าพูลจะไม่ถูกทำลายจนกว่าแอปพลิเคชันจะยุติลง หากต้องการตั้งค่าขนาดพูลขั้นต่ำเป็น 5 ให้ใช้สตริงการเชื่อมต่อที่คล้ายกับต่อไปนี้:

แหล่งข้อมูล=SqlServerName;แค็ตตาล็อกเริ่มต้น=ชื่อฐานข้อมูล; ความปลอดภัยแบบรวม = True; ขนาดพูลขั้นต่ำ = 5

ขนาดพูลขั้นต่ำคือ 0 ตามค่าเริ่มต้น ซึ่งหมายความว่าแต่ละการเชื่อมต่อจำเป็นต้องสร้างและเริ่มต้นตามที่ร้องขอ โดยการเพิ่มขนาดพูลขั้นต่ำในสตริงการเชื่อมต่อ จำนวนการเชื่อมต่อที่ระบุจะถูกสร้างขึ้นและพร้อมใช้งาน ซึ่งสามารถลด เวลาที่ใช้ในการสร้างการเชื่อมต่อกับการเชื่อมต่อเริ่มต้นเหล่านี้

การกำหนดค่าการรวมการเชื่อมต่อด้วย Oracle Connections

การเชื่อมต่อที่ใช้ .NET Framework Data Provider สำหรับ Oracle จะใช้การรวมการเชื่อมต่อโดยอัตโนมัติตามค่าเริ่มต้น คุณสามารถควบคุมวิธีที่การเชื่อมต่อใช้พูลได้โดยการตั้งค่าคำสำคัญสตริงการเชื่อมต่อ ตารางที่ 5-10 ให้รายละเอียดคีย์เวิร์ดสตริงการเชื่อมต่อที่พร้อมใช้งานสำหรับการเปลี่ยนแปลงกิจกรรมพูลการเชื่อมต่อ

การจัดการข้อผิดพลาดในการเชื่อมต่อ

เมื่อ SQL Server ส่งคืนคำเตือนหรือข้อผิดพลาด .NET Framework Data Provider สำหรับ SQL Server จะสร้างและส่ง SqlException ที่คุณสามารถตรวจจับได้ในแอปพลิเคชันของคุณเพื่อจัดการกับปัญหา เมื่อ SqlException ถูกส่งออกไป ให้ตรวจสอบคุณสมบัติ SqlException.Errors เพื่อเข้าถึงคอลเลกชันของข้อผิดพลาดที่ส่งคืนจากเซิร์ฟเวอร์ SQL คุณสมบัติ SqlException.Errors เป็นคลาส SqlErrorCollection (คอลเลกชันของคลาส SqlError) ที่ประกอบด้วยวัตถุ SqlError อย่างน้อยหนึ่งรายการเสมอ

ข้อมูลเพิ่มเติม ข้อผิดพลาดของเซิร์ฟเวอร์ SQL

SqlConnection จะยังคงเปิดอยู่สำหรับข้อความที่มีระดับความรุนแรง 19 หรือน้อยกว่า แต่โดยทั่วไปจะปิดโดยอัตโนมัติเมื่อระดับความรุนแรงคือ 20 หรือมากกว่า

สรุป

  • การรวมการเชื่อมต่อถูกเปิดใช้งานตามค่าเริ่มต้น
  • ตัวเลือกการรวมการเชื่อมต่อถูกกำหนดไว้ในสตริงการเชื่อมต่อ ยกเว้นผู้ให้บริการ ODBC ซึ่งใช้กล่องโต้ตอบผู้ดูแลระบบแหล่งข้อมูล ODBC บน Windows
  • วัตถุ SqlException ถูกสร้างขึ้นเมื่อตรวจพบข้อผิดพลาดในเซิร์ฟเวอร์ SQL
  • แต่ละอินสแตนซ์ของข้อยกเว้น SqlException ประกอบด้วยคำเตือน SqlError อย่างน้อยหนึ่งรายการที่ประกอบด้วยข้อมูลข้อผิดพลาดของเซิร์ฟเวอร์จริง
  • Windows Authentication (หรือที่เรียกว่า Integrated Security) เป็นวิธีที่แนะนำสำหรับการเชื่อมต่อข้อมูลอย่างปลอดภัย
  • จัดเก็บสตริงการเชื่อมต่อที่มีข้อมูลที่ละเอียดอ่อนในไฟล์การกำหนดค่าแอปพลิเคชัน และเข้ารหัสการกำหนดค่าทั้งหมดที่มีข้อมูลที่ละเอียดอ่อน