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: ASP.NET, MS SQL Server 2005
About