By default when every any command executed by table adapter,
its time out is 30 second. Due to heavy load of data and traffic over the
network, we require increasing this default time out.
It’s very straight forward when we use code for it. In case
of strongly data set it’s a bit tricky.
Firstly, you will require extending your dataset existing
name space and its table adapter. In data table adapter class, you can add one
method for changing this time out.
//Extend
existing data table adapter class created by strongly typed dataset.
Namespace
MyTableAdapters
Partial
Public Class MyTableAdapter
Public Sub SetCustomCommandTimeout()
Utility.SetCommandTimeout(CommandCollection)
End Sub
End Class
Public Sub SetCustomCommandTimeout()
Utility.SetCommandTimeout(CommandCollection)
End Sub
End Class
End Namespace
//Set
Custom Timeout to underlying command.
Public
Shared Sub SetCommandTimeout(ByVal commands As System.Data.SqlClient.SqlCommand(),
Optional ByVal timeout As Integer = -1)
If (commands IsNot Nothing) Then
If (timeout < 0) Then timeout = GetConfigTimeout()
For Each cmd As System.Data.SqlClient.SqlCommand In commands
cmd.CommandTimeout = timeout
Next
End If
End Sub
If (commands IsNot Nothing) Then
If (timeout < 0) Then timeout = GetConfigTimeout()
For Each cmd As System.Data.SqlClient.SqlCommand In commands
cmd.CommandTimeout = timeout
Next
End If
End Sub
//Get
Custom time out from web.config.
Private Shared Function GetConfigTimeout() As Integer
Dim timeOut As Integer
If Not System.Configuration.ConfigurationManager.AppSettings("CommandExecutionTimeOut") Is Nothing Then
timeOut = CType(System.Configuration.ConfigurationManager.AppSettings("CommandExecutionTimeOut"), Integer)
Else
timeOut = 0
End If
Return timeOut
End Function
Hope this would be very helpful !!
No comments:
Post a Comment