i need to know best practice for avoid connection timeout when using LINQ to SQL in .net applications specially when returning IQueryable<T>
from data access tiers or layers.
I get "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." error when testing my asp.net application for webstress tests ?
If you encounter a connection-timeout error, follow the steps: Increase the connection-timeout parameter. If you use an application to connect to SQL Server, increase the relevant connection-timeout parameter values and check whether the connection eventually succeeds.
LINQ to SQL was the first object-relational mapping technology released by Microsoft. It works well in basic scenarios and continues to be supported in Visual Studio, but it's no longer under active development.
Stored procedures are faster as compared to LINQ query since they have a predictable execution plan and can take the full advantage of SQL features. Hence, when a stored procedure is being executed next time, the database used the cached execution plan to execute that stored procedure.
http://www.geekscrapbook.com/2010/08/13/connection-timeout-using-linq-datacontext/
Link will explain you what will be the reason of Timeouut using LINQ to SQl.You can manually increase the query execution time.By default its 30 sec. According to Visual studio 2008 Go to
Tools->Database Tools->Query & view design
Here you will get the option to increase the execution time. Hope it helps you.
Good Luck
You need to increase the CommandTimeout
property value in your DataContext
object (the default value is 30 seconds), it is measured in seconds, for example:
var myDataContext = new MyDbDataContext(myConnectionString) { CommandTimeout = 120 }; var rows = myDataContext.sp_Agent__Select(agentId);
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With