Active Server Pages error 'ASP 0113' Script timed out

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • =?Utf-8?B?SnVzdGluIERvaA==?=

    Active Server Pages error 'ASP 0113' Script timed out

    I am constantly getting the 'Script timed out' error, and would like to see
    if there is any way I could modify the ASP page.

    I think I did all I could to improved the performance at the database table
    level, but when it comes to the ASP, the error occurs most of time.
    This error happens when this ASP page has been moved to a new server.

    I modified the "server.ScriptT imeout = " at the ASP and also at IIS.
    The report does not retrieve the whole records, but it stops in the middle,
    and giving this error message.

    I am also curious whether .AbsolutePositi on might be a factor? But on the
    previous server, I had no problem.

    Here is the part of ASP page where it retrieves a data.

    strSQL = "spHWABPOOrderS elect_1 " & nAcctNum
    Dim rsHBSBPOOrder : Set rsHWABPOOrder = New clsRecordSet
    With rsHBSBPOOrder
    .ConnectionStri ng = ConnHBS
    .Load(strSQL)
    Dim nTmp
    Do While Not .EOF
    if .AbsolutePositi on = 0 Then
    nBPO1Val = Trim(.Fields("c urBPOAsIs")&"")
    If Len(nBPO1Val) <0 Then
    nBPO1Val = FormatCurrency( nBPO1Val, 0)
    End If
    nTmp = nBPO1Val
    dtBPO1 = Trim(.Fields("d tReceived")&"")
    ElseIf .AbsolutePositi on = 1 Then
    nBPO2Val = Trim(.Fields("c urBPOAsIs")&"")
    If Len(nBPO2Val) = 0 Then
    nBPO2Val = nTmp
    Else
    nBPO2Val = FormatCurrency( nBPO2Val, 0)
    End If
    dtBPO2 = Trim(.Fields("d tReceived")&"")
    End If
    .MoveNext
    Loop
    End With
    Set rsHWABPOOrder = Nothing
  • Bob Barrows [MVP]

    #2
    Re: Active Server Pages error 'ASP 0113' Script timed out

    This procedure can never return more than 2 records?
    If it can, why are you bothering to continue looping through it when
    absolutepositio n is 1?
    Also, why don't you rewrite the procedure to only return two records?

    You don't show where the value contained in nAcctNum comes from, but you
    are aware that using this technique to execute a procedure leaves you
    vulnerable to sql injection, don't you?

    Justin Doh wrote:
    I am constantly getting the 'Script timed out' error, and would like
    to see if there is any way I could modify the ASP page.
    >
    I think I did all I could to improved the performance at the database
    table level, but when it comes to the ASP, the error occurs most of
    time.
    This error happens when this ASP page has been moved to a new server.
    >
    I modified the "server.ScriptT imeout = " at the ASP and also at IIS.
    The report does not retrieve the whole records, but it stops in the
    middle, and giving this error message.
    >
    I am also curious whether .AbsolutePositi on might be a factor? But on
    the previous server, I had no problem.
    >
    Here is the part of ASP page where it retrieves a data.
    >
    strSQL = "spHWABPOOrderS elect_1 " & nAcctNum
    Dim rsHBSBPOOrder : Set rsHWABPOOrder = New clsRecordSet
    With rsHBSBPOOrder
    .ConnectionStri ng = ConnHBS
    .Load(strSQL)
    Dim nTmp
    Do While Not .EOF
    if .AbsolutePositi on = 0 Then
    nBPO1Val = Trim(.Fields("c urBPOAsIs")&"")
    If Len(nBPO1Val) <0 Then
    nBPO1Val = FormatCurrency( nBPO1Val, 0)
    End If
    nTmp = nBPO1Val
    dtBPO1 = Trim(.Fields("d tReceived")&"")
    ElseIf .AbsolutePositi on = 1 Then
    nBPO2Val = Trim(.Fields("c urBPOAsIs")&"")
    If Len(nBPO2Val) = 0 Then
    nBPO2Val = nTmp
    Else
    nBPO2Val = FormatCurrency( nBPO2Val, 0)
    End If
    dtBPO2 = Trim(.Fields("d tReceived")&"")
    End If
    .MoveNext
    Loop
    End With
    Set rsHWABPOOrder = Nothing
    --
    Microsoft MVP -- ASP/ASP.NET
    Please reply to the newsgroup. The email account listed in my From
    header is my spam trap, so I don't check it very often. You will get a
    quicker response by posting to the newsgroup.


    Comment

    • =?Utf-8?B?SnVzdGluIERvaA==?=

      #3
      Re: Active Server Pages error 'ASP 0113' Script timed out

      Hi Bob,

      I appreciate for your feedback.

      I am not sure how I could modify the Do While Loop..
      Do you have any suggestions?
      I know I am only getting two values, but doesn't it have to go through the
      end of file?

      Regards to your second feedback, I am not sure what you meant.
      >You don't show where the value contained in nAcctNum comes from, but you
      are aware that using this technique to execute a procedure leaves you
      vulnerable to sql injection, don't you?

      "Bob Barrows [MVP]" wrote:
      This procedure can never return more than 2 records?
      If it can, why are you bothering to continue looping through it when
      absolutepositio n is 1?
      Also, why don't you rewrite the procedure to only return two records?
      >
      You don't show where the value contained in nAcctNum comes from, but you
      are aware that using this technique to execute a procedure leaves you
      vulnerable to sql injection, don't you?
      >
      Justin Doh wrote:
      I am constantly getting the 'Script timed out' error, and would like
      to see if there is any way I could modify the ASP page.

      I think I did all I could to improved the performance at the database
      table level, but when it comes to the ASP, the error occurs most of
      time.
      This error happens when this ASP page has been moved to a new server.

      I modified the "server.ScriptT imeout = " at the ASP and also at IIS.
      The report does not retrieve the whole records, but it stops in the
      middle, and giving this error message.

      I am also curious whether .AbsolutePositi on might be a factor? But on
      the previous server, I had no problem.

      Here is the part of ASP page where it retrieves a data.

      strSQL = "spHWABPOOrderS elect_1 " & nAcctNum
      Dim rsHBSBPOOrder : Set rsHWABPOOrder = New clsRecordSet
      With rsHBSBPOOrder
      .ConnectionStri ng = ConnHBS
      .Load(strSQL)
      Dim nTmp
      Do While Not .EOF
      if .AbsolutePositi on = 0 Then
      nBPO1Val = Trim(.Fields("c urBPOAsIs")&"")
      If Len(nBPO1Val) <0 Then
      nBPO1Val = FormatCurrency( nBPO1Val, 0)
      End If
      nTmp = nBPO1Val
      dtBPO1 = Trim(.Fields("d tReceived")&"")
      ElseIf .AbsolutePositi on = 1 Then
      nBPO2Val = Trim(.Fields("c urBPOAsIs")&"")
      If Len(nBPO2Val) = 0 Then
      nBPO2Val = nTmp
      Else
      nBPO2Val = FormatCurrency( nBPO2Val, 0)
      End If
      dtBPO2 = Trim(.Fields("d tReceived")&"")
      End If
      .MoveNext
      Loop
      End With
      Set rsHWABPOOrder = Nothing
      >
      --
      Microsoft MVP -- ASP/ASP.NET
      Please reply to the newsgroup. The email account listed in my From
      header is my spam trap, so I don't check it very often. You will get a
      quicker response by posting to the newsgroup.
      >
      >
      >

      Comment

      • Bob Barrows [MVP]

        #4
        Re: Active Server Pages error 'ASP 0113' Script timed out


        Justin Doh wrote:
        Hi Bob,
        >
        I appreciate for your feedback.
        >
        I am not sure how I could modify the Do While Loop..
        Do you have any suggestions?
        I know I am only getting two values, but doesn't it have to go
        through the end of file?
        No. If you are only getting two records, you don't even need a loop.

        With rsHBSBPOOrder
        .ConnectionStri ng = ConnHBS
        .Load(strSQL)
        Dim nTmp
        If not .EOF Then
        'recordset is automatically pointing at first record
        If Len(nBPO1Val) <0 Then
        nBPO1Val = FormatCurrency( nBPO1Val, 0)
        End If
        nTmp = nBPO1Val
        dtBPO1 = Trim(.Fields("d tReceived")&"")
        .MoveNext
        If not .EOF Then
        'recordset is now pointing at second record
        nBPO2Val = Trim(.Fields("c urBPOAsIs")&"")
        If Len(nBPO2Val) = 0 Then
        nBPO2Val = nTmp
        Else
        nBPO2Val = FormatCurrency( nBPO2Val, 0)
        End If
        dtBPO2 = Trim(.Fields("d tReceived")&"")
        End If
        End If
        ..Close '<---
        End With
        Set rsHWABPOOrder = Nothing

        <--- I added the .Close statement, but I recognize I may not have had
        to. Does your clsRecordSet class have a Terminate event in which the
        recordset and connection are closed? I do hope you are explicitly
        closing the database connection ...
        >
        Regards to your second feedback, I am not sure what you meant.
        >You don't show where the value contained in nAcctNum comes from, but
        >you are aware that using this technique to execute a procedure
        >leaves you vulnerable to sql injection, don't you?
        >
        >
        See what happens if nAcctNum contains something like

        1234;create table test (testcol int);

        Read about sql injection in these links:





        --
        Microsoft MVP -- ASP/ASP.NET
        Please reply to the newsgroup. The email account listed in my From
        header is my spam trap, so I don't check it very often. You will get a
        quicker response by posting to the newsgroup.


        Comment

        Working...