การแก้ปัญหา Pooling ของ Applicationsใน ASP.NET
วันที่เขียน 17/9/2555 11:11:43     แก้ไขล่าสุดเมื่อ 29/3/2567 15:21:45
เปิดอ่าน: 12907 ครั้ง

การพัฒนาระบบงานที่มีการติดต่อกับฐานข้อมูลตลอดเวลา บางเวลา หรือแบบมีจำนวน Client เข้ามาติดต่อเป็นจำนวนมาก เมื่อทำการเปิดฐานข้อมูล โดยการเปิด Connection ไปยัง Database จะทำให้เกิดการใช้งานทรัพยากรของระบบในจำนวนมากและทำให้ Application ที่ทำการเปิด Connection นั้นทำงานช้าลงไปด้วย และเมื่อมีการเปิดการติดต่ออยู่กับ Database ตัวเดียว หรือหลายๆ ตัวในระบบ จะทำให้เกิดการเชื่อมต่อการทำงานตลอดเวลา

การพัฒนาระบบงานที่มีการติดต่อกับฐานข้อมูลตลอดเวลา บางเวลา หรือแบบมีจำนวน Client เข้ามาติดต่อเป็นจำนวนมาก เมื่อทำการเปิดฐานข้อมูล โดยการเปิด Connection ไปยัง Database จะทำให้เกิดการใช้งานทรัพยากรของระบบในจำนวนมากและทำให้ Application ที่ทำการเปิด Connection นั้นทำงานช้าลงไปด้วย และเมื่อมีการเปิดการติดต่ออยู่กับ Database ตัวเดียว หรือหลายๆ ตัวในระบบ จะทำให้เกิดการเชื่อมต่อการทำงานตลอดเวลา

โดย Connection Pool จะทำ Connection เป็นแบบ Idle หรือ Open หรือ Reuse ได้ แทนที่จะเปิด New connection ใหม่ทุกครั้งที่มีการ Request ขอติดต่อกับ Database เมื่อ Connection ถูกปิด หรือ ถูกเปิด มันจะส่งค่ากลับมายัง Pool และมีสถานะเป็น Idle จนกว่ามี Request เพื่อขอ Connection มาใหม่ ถ้าเราใช้ Connection Pool อย่างมีประสิทธิภาพ คือ เปิดและปิดทุกครั้งของการ Connect DB ก็จะทำให้มีการใช้ Resource ในปริมาณที่น้อย

 

เพื่อให้ Connection Pool ให้มีประสิทธิภาพที่ดีที่สุดและทำให้ Performance ของ Application ที่งานได้ดีที่สุด

 

1.วิธีการแก้ปัญหาที่ดีที่สุดโดย ทำการ Closing connections เมื่อมีการ Open Connection ต้องมีการ Close ทุกครั้ง ตัวอย่างเช่น

 

     SqlConnection conn = new SqlConnection(myConnectionString);

     conn.Open();

     doSomething();

     conn.Close();          

2.ใช้คำสั่ง Try Catch มาใช้ในการทำงาน

     SqlConnection conn = new SqlConnection(myConnectionString);

     try

     {

          conn.Open();

          doSomething(conn);

     }

     finally

{

          conn.Close();          

     }

3. เขียนในรูปแบบของการ Using

     using (SqlConnection conn = new SqlConnection(myConnectionString))

     {

          conn.Open();

          doSomething(conn);

     }

 

4. เมื่อมีการ connection ไปยัง  a class ต่างๆ ต้องแน่ใจว่ามีการปิดการเชื่อมต่อแล้ว

OleDbCommand cmd new OleDbCommand(myUpdateQuery, getConnection());

     intres = cmd.ExecuteNonQuery();

     getConnection().Close(); // The connection returned from the first call to getConnection() is not being closed. Instead of closing your connection, this line creates a new one and tries to close it.

 

หรือใช้รูปแบบง่ายๆ ทุกครั้งในการเชื่อมต่อ  ดังนี้

conn = new SqlConnection();

try

{

conn.ConnectionString = "integrated security=SSPI;SERVER=YOUR_SERVER;DATABASE=YOUR_DB_NAME;Min Pool Size=5;Max Pool Size=60;Connect Timeout=2;";// Notice Connection Timeout set to only two seconds!

conn.Open();

}

catch(Exception)

{

if (conn.State != ConnectionState.Closed) conn.Close();

conn.ConnectionString = "integrated security=SSPI;SERVER=YOUR_SERVER;DATABASE=YOUR_DB_NAME;Pooling=false;Connect Timeout=45;";

conn.Open();

เพียงเท่านี้ ก็จะแก้ไขปัญหา Pooling ของ Application  ได้

คำสำคัญ :
กลุ่มบทความ :
หมวดหมู่ :
แชร์ :
https://erp.mju.ac.th/acticleDetail.aspx?qid=217
ความคิดเห็นทั้งหมด (0)
ไม่มีข้อมูลตามเงื่อนไขที่ท่านกำหนด
รายการบทความการแลกเปลี่ยนเรียนรู้หมวดหมู่ : กลุ่มงานเทคโนโลยีสารสนเทศ
ความรู้ที่ได้จากการศึกษาค้นคว้าด้วยตนเอง » Assignment in Microsoft Teams
การมอบหมายงาน (Assignment ) สำหรับนักศึกษาในห้องเรียน ระบบ Microsoft Teams สร้างความสะดวกในการมอบหมายงานให้กับนักศึกษา การส่งงาน และสามารถให้คะแนนนักศึกษาแต่ละคนในห้องเรียน สำหรับผู้ที่อยู่ในสถาบัน...
Assignment  Microsoft Teams  การมอบหมายงาน  การให้คะแนน     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน สุภาพรรณ อนุตรกุล  วันที่เขียน 26/3/2567 18:01:20  แก้ไขล่าสุดเมื่อ 29/3/2567 14:29:34   เปิดอ่าน 44  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
ความรู้ที่ได้รับจากการเข้าร่วมประชุม/อบรม/สัมมนา » Google Sites สร้างเว็บไซต์ได้อย่างง่ายดาย
Google Sites คือโปรแกรมหนึ่งของ บริษััท Google ที่เปิดให้ สมาชิกของ Google สามารถ สร้างเว็บไซต์ของตนเองได้ฟรี โดยการสร้างเว็บไซต์ ด้วย Google Sites นั้น ทำได้ง่าย เหมือนกับการแก้ไข เอกสารธรรมดา ๆ ช...
Google Sites  เว็บไซต์     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน สุภาพรรณ อนุตรกุล  วันที่เขียน 11/3/2567 17:19:12  แก้ไขล่าสุดเมื่อ 29/3/2567 11:54:57   เปิดอ่าน 102  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การพัฒนาระบบสารสนเทศ » การกำหนดผลลัพธ์การเรียนรู้รายวิชา CLOs ผ่าน มคอ.3
หัวข้อนี้เน้น การออกแบบหลักสูตรให้ตอบสนองต่อผลการเรียนรู้ที่คาดหวังของหลักสูตร สะท้อนถึงความต้องการ ของผู้ที่เกี่ยวข้องครบทุกภาคส่วน และผลการเรียนรู้นั้นต้องครอบคลุมทั้งความรู้ ทักษะเฉพาะทางและทักษ...
CLO  ELO  PLO     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน สมนึก สินธุปวน  วันที่เขียน 18/11/2566 23:45:59  แก้ไขล่าสุดเมื่อ 29/3/2567 14:58:42   เปิดอ่าน 212  ครั้ง | แสดงความคิดเห็น 0  ครั้ง
การพัฒนาระบบสารสนเทศ » แอปพลิเคชันสำหรับช่วยในการจัดเรียนการสอน
การเรียนผ่านเครื่องมือช่วยสอนโดยใช้แอปพลิเคชันมีบทบาทในการส่งเสริมและช่วยเหลืออาจารย์และนักศึกษาเป็นอย่างมาก บทความนี้ได้รวบรวม 8 เครื่องมือช่วยสอนสำหรับอาจารย์ในการช่วยจัดการเรียนการสอนให้เกิดความ...
Canva  Kahoot  Nearpod  Plicker  Quizizz  Storyboard  Visme  Voxer     กลุ่มงานตามสมรรถนะบุคลากร   กลุ่มงานเทคโนโลยีสารสนเทศ
ผู้เขียน สมนึก สินธุปวน  วันที่เขียน 18/11/2566 23:01:13  แก้ไขล่าสุดเมื่อ 29/3/2567 15:15:56   เปิดอ่าน 187  ครั้ง | แสดงความคิดเห็น 0  ครั้ง