Mijn vraag
Sinds een paar maanden (heel) langzaam mij te verdiepen in .Net en VB. Een beetje gedwongen
Nu is het probleem dat sinds een aantal maanden er problemen zijn met de website, heel langzaam laden van pagina's. Gelukkig hebben we error reporting en daar valt op, time outs en thread aborted meldingen.
De website server en de database server zijn gehost bij AWS en zitten in dezelfde region.
Ik pak even een voorbeeld naar voren, dit is in mijn ogen een heel erg basic query en toch produceert dit een timeout. Is er iemand die mij de juiste weg op kan wijzen?
Voorbeeld code:
Voorbeeld error:
Relevante software en hardware die ik gebruik
...
Wat ik al gevonden of geprobeerd heb
Dit is de time out in web.config, zo hoog gezet dat dit het niet meer kan zijn, denk ik.
<httpRuntime executionTimeout="3000" maxRequestLength="1048576" />
Beide servers zijn een keer herstart, schijfruimte is voldoende, geen rare event viewer meldingen.
MSSQL server versie: 10.50.2789.0.v1
Webserver 2012 R2, .NET v2.0
Sinds een paar maanden (heel) langzaam mij te verdiepen in .Net en VB. Een beetje gedwongen
Nu is het probleem dat sinds een aantal maanden er problemen zijn met de website, heel langzaam laden van pagina's. Gelukkig hebben we error reporting en daar valt op, time outs en thread aborted meldingen.
De website server en de database server zijn gehost bij AWS en zitten in dezelfde region.
Ik pak even een voorbeeld naar voren, dit is in mijn ogen een heel erg basic query en toch produceert dit een timeout. Is er iemand die mij de juiste weg op kan wijzen?
Voorbeeld code:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| If CustomerDiscGroup <> "" And ItemDiscGroup <> "" Then cmd = New StringBuilder cmd.Append("SELECT ISNULL([Line Discount %], 0) AS Discount, [Code1] AS TC, [Starting Date] AS Sdate, [Ending Date] AS Edate, GetDate() AS DN ") cmd.Append(" FROM [Sales_Discount] ") cmd.Append(" WHERE (RTRIM(Type) = 'Item Disc. Group') AND (RTRIM([Sales Type]) = 'Customer Disc. Group')") cmd.Append(" AND ([Sales Code] = '@CustomerDiscGroup') AND ([Code1] = '@ItemDiscGroup')") cmd.Append(" AND ([Starting Date] <= getDate()) AND ([Ending Date] IS NULL OR GetDate() <= [Ending Date])") Using con As New SqlConnection(std.Navision) Using SQLcmd As New SqlCommand(cmd.ToString(), con) SQLcmd.Parameters.Add("@CustomerDiscGroup", SqlDbType.VarChar, 20) SQLcmd.Parameters("@CustomerDiscGroup").Value = CustomerDiscGroup SQLcmd.Parameters.Add("@ItemDiscGroup", SqlDbType.NVarChar) SQLcmd.Parameters("@ItemDiscGroup").Value = ItemDiscGroup Try con.Open() Discount = CDec(SQLcmd.ExecuteScalar) Catch ex As Exception std.ErrorEmail("Products.vb, line 2319: Could not get right discount from Navision Error<br />" & ex.ToString() & "<br />" & cmd.ToString() & "<br />" & SQLcmd.ToString()) Finally con.Close() End Try End Using End Using Else |
Voorbeeld error:
code:
1
2
| Products.vb, line 2319: Could not get right discount from Navision Error System.Data.SqlClient.SqlException: Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection) at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj) at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj) at System.Data.SqlClient.SqlDataReader.ConsumeMetaData() at System.Data.SqlClient.SqlDataReader.get_MetaData() at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString) at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result) at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method) at System.Data.SqlClient.SqlCommand.ExecuteScalar() at Products.GetPrice(ItemType ProductType, Int32 ID, String Product, PriceType RetPrice, String CNN, Int32 CID, String CustomerDiscGroup, String ItemDiscGroup, Decimal UnitPrice) |
Relevante software en hardware die ik gebruik
...
Wat ik al gevonden of geprobeerd heb
Dit is de time out in web.config, zo hoog gezet dat dit het niet meer kan zijn, denk ik.
<httpRuntime executionTimeout="3000" maxRequestLength="1048576" />
Beide servers zijn een keer herstart, schijfruimte is voldoende, geen rare event viewer meldingen.
MSSQL server versie: 10.50.2789.0.v1
Webserver 2012 R2, .NET v2.0