Solving MS SQL 2005: Timeout expired

MS SQL Server April 25th, 2008

ข้อความ Error:
Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.

สาเหตุ:
หลังจากที่ทำการเปิด SQL Connection แล้วไม่มีการปิดเป็นเวลานาน
อาจเนื่องมาจาก code ที่เราสั่งให้จัดการกับ SQL มีหลายชุดคำสั่งซ้อนกันอยู่

วิธีแก้ไข:
1. ให้เราทำการ เปิด-ปิด connection บ่อยมากขึ้น หรือ
2. เพิ่มค่า timeout “CommandTimeout = 50″ (50 = 50 วินาที) หรือลองดูตาม code ตัวอย่างด้านล่าง

Public Shared Function Query(ByVal sql As string) as string
Dim Data As String = String.Empty
Dim connString as String = ConfigurationManager.AppSettings("conString")

Using conn As New SqlConnection(connString)
Dim cmd As New SqlCommand(sql, conn)
cmd.CommandTimeout = 50;
Try
conn.Open()
Data = cmd.ExecuteScalar().ToString()
Catch ex As Exception
Console.WriteLine(ex.Message)
End Try
End Using

return Data
End Function

อ้างอิงจาก: http://forums.asp.net/t/1252358.aspx

Tags: ,

Copyright © 2008 iBiz Network Co., Ltd. Powered by wordpress, Theme by ericulous