XMLHTTP async

Discussion in 'ASP General' started by Vanessa, Sep 24, 2005.

  1. Vanessa

    Vanessa Guest

    I have a question regarding async mode for calling Microsoft.XMLHTTP object.

    Microsoft.XMLHTTP hangs the IE once in a while suddenly, but it will work
    again after half an hour or so without doing anything. I have searched
    through the Internet and seems like the reason it hangs the browser it's
    because XMLHTTP limits you to two concurrent HTTP connections to each remote
    host; so if more than 2 concurrent connections strike the script which is
    calling XMLHTTP, it will hang. Is that true?

    If that the case, can I change async mode to true (async=true) so that it
    will only take one connection at a time, meanwhile other concurrent
    connections will loop and wait till XMLHTTP is ready to process data again.
    Will that work?

    Please help me cause I am not sure whether my impression is correct or not.
    Thanks!
    Vanessa, Sep 24, 2005
    #1
    1. Advertising

  2. "Vanessa" <> wrote in message
    news:...
    >I have a question regarding async mode for calling Microsoft.XMLHTTP
    >object.
    >
    > Microsoft.XMLHTTP hangs the IE once in a while suddenly, but it will work
    > again after half an hour or so without doing anything. I have searched
    > through the Internet and seems like the reason it hangs the browser it's
    > because XMLHTTP limits you to two concurrent HTTP connections to each
    > remote
    > host; so if more than 2 concurrent connections strike the script which is
    > calling XMLHTTP, it will hang. Is that true?


    Are you talking about using XMLHTTP in server-side ASP code, or client-side
    script [emitted from ASP, but executed by IE]?

    If the former, you should be using XMLHTTPServer -- but note that with
    either object, you cannot call another ASP in the same virtual directory as
    the calling ASP. (Doing so will hang the virtual server.)

    If the latter, try adding the "defer" attribute to your script tags (<script
    defer>) which will defer execution until after the page has completely
    loaded.

    In neither case is async operation likely to be extremely useful, I've never
    managed to get XMLHTTP events to work quite right in HTML script, and on the
    server side, ASP doesn't lend itself to async calls at all. You'll use more
    CPU looping on a readystate check than waiting for the call to complete --
    particularly without a native way to "sleep" the calling process.

    What's more, async calls would be more likely to incur more connections, not
    less likely (given a single-threaded environment like ASP script.)

    Lastly, 30 minutes is an awfully long time to hang, so it would seem at
    least a little deeper than the connection limit.


    -Mark


    > If that the case, can I change async mode to true (async=true) so that it
    > will only take one connection at a time, meanwhile other concurrent
    > connections will loop and wait till XMLHTTP is ready to process data
    > again.
    > Will that work?
    >
    > Please help me cause I am not sure whether my impression is correct or
    > not.
    > Thanks!
    Mark J. McGinty, Sep 24, 2005
    #2
    1. Advertising

  3. Vanessa

    Vanessa Guest

    I am talking about using XMLHTTP in server-side ASP code. However, I have
    tried using ServerXMLHTTP, namely MSXML2.ServerXMLHTTP object, in replace of
    Microsoft.XMLHTTP. Sometimes it works perfectly fine but sometimes it gives
    me time out error, which gave me a headache:
    msxml3.dll error '80072ee2'
    The operation timed out

    For using XMLHTTP, my two asp pages are in different virtual directories.
    The calling asp page will call XMLHTTP object to get some data dynamically
    from other asp page and then display information to the IE. Hm.. so setting
    async to true will not help in this issue...

    If two asp pages are in the same virtual directory, will it hang IE all the
    times or just once in a while? And once it hangs, do we have to restart the
    IIS in order to work again or we can just wait? Cause in my situation, it
    will hang just once in a while. Thanks!!

    Vanessa

    "Mark J. McGinty" wrote:

    >
    > "Vanessa" <> wrote in message
    > news:...
    > >I have a question regarding async mode for calling Microsoft.XMLHTTP
    > >object.
    > >
    > > Microsoft.XMLHTTP hangs the IE once in a while suddenly, but it will work
    > > again after half an hour or so without doing anything. I have searched
    > > through the Internet and seems like the reason it hangs the browser it's
    > > because XMLHTTP limits you to two concurrent HTTP connections to each
    > > remote
    > > host; so if more than 2 concurrent connections strike the script which is
    > > calling XMLHTTP, it will hang. Is that true?

    >
    > Are you talking about using XMLHTTP in server-side ASP code, or client-side
    > script [emitted from ASP, but executed by IE]?
    >
    > If the former, you should be using XMLHTTPServer -- but note that with
    > either object, you cannot call another ASP in the same virtual directory as
    > the calling ASP. (Doing so will hang the virtual server.)
    >
    > If the latter, try adding the "defer" attribute to your script tags (<script
    > defer>) which will defer execution until after the page has completely
    > loaded.
    >
    > In neither case is async operation likely to be extremely useful, I've never
    > managed to get XMLHTTP events to work quite right in HTML script, and on the
    > server side, ASP doesn't lend itself to async calls at all. You'll use more
    > CPU looping on a readystate check than waiting for the call to complete --
    > particularly without a native way to "sleep" the calling process.
    >
    > What's more, async calls would be more likely to incur more connections, not
    > less likely (given a single-threaded environment like ASP script.)
    >
    > Lastly, 30 minutes is an awfully long time to hang, so it would seem at
    > least a little deeper than the connection limit.
    >
    >
    > -Mark
    >
    >
    > > If that the case, can I change async mode to true (async=true) so that it
    > > will only take one connection at a time, meanwhile other concurrent
    > > connections will loop and wait till XMLHTTP is ready to process data
    > > again.
    > > Will that work?
    > >
    > > Please help me cause I am not sure whether my impression is correct or
    > > not.
    > > Thanks!

    >
    >
    >
    Vanessa, Sep 26, 2005
    #3
  4. "Vanessa" <> wrote in message
    news:...
    >I am talking about using XMLHTTP in server-side ASP code. However, I have
    > tried using ServerXMLHTTP, namely MSXML2.ServerXMLHTTP object, in replace
    > of
    > Microsoft.XMLHTTP. Sometimes it works perfectly fine but sometimes it
    > gives
    > me time out error, which gave me a headache:
    > msxml3.dll error '80072ee2'
    > The operation timed out


    That beats hanging IE for half an hour, doesn't it? :) You could trap the
    error and retry, but the core issue would be whatever's causing it to
    timeout. Is there any chance the underlying SQL is deadlocking? When the
    condition occurs again, use Enterprise Manager -> Management -> Current
    Activity -> Process Info, or execute sp_who2 in Query Analyzer, to check for
    any blocking processes.

    That assumes, of course, you're using SQL Server as the database back-end.
    If not, deadlock is still the avenue I would pursue, but I don't know enough
    about Oracle or MySQL (and don't care enough about Jet) to offer any real
    help.

    > For using XMLHTTP, my two asp pages are in different virtual directories.
    > The calling asp page will call XMLHTTP object to get some data dynamically
    > from other asp page and then display information to the IE. Hm.. so
    > setting
    > async to true will not help in this issue...
    >
    > If two asp pages are in the same virtual directory, will it hang IE all
    > the
    > times or just once in a while? And once it hangs, do we have to restart
    > the
    > IIS in order to work again or we can just wait? Cause in my situation, it
    > will hang just once in a while. Thanks!!


    Caller and callee in the same virtual dir will hang IIS every time; IE also
    appears to hang but that's more of a side-effect than anything else. I
    personally have never been patient enough to wait that long for a hung
    process. IIS may do something to self-correct eventually, but I always
    end-up resetting it myself long before that occurs. :)


    > Vanessa
    >
    > "Mark J. McGinty" wrote:
    >
    >>
    >> "Vanessa" <> wrote in message
    >> news:...
    >> >I have a question regarding async mode for calling Microsoft.XMLHTTP
    >> >object.
    >> >
    >> > Microsoft.XMLHTTP hangs the IE once in a while suddenly, but it will
    >> > work
    >> > again after half an hour or so without doing anything. I have searched
    >> > through the Internet and seems like the reason it hangs the browser
    >> > it's
    >> > because XMLHTTP limits you to two concurrent HTTP connections to each
    >> > remote
    >> > host; so if more than 2 concurrent connections strike the script which
    >> > is
    >> > calling XMLHTTP, it will hang. Is that true?

    >>
    >> Are you talking about using XMLHTTP in server-side ASP code, or
    >> client-side
    >> script [emitted from ASP, but executed by IE]?
    >>
    >> If the former, you should be using XMLHTTPServer -- but note that with
    >> either object, you cannot call another ASP in the same virtual directory
    >> as
    >> the calling ASP. (Doing so will hang the virtual server.)
    >>
    >> If the latter, try adding the "defer" attribute to your script tags
    >> (<script
    >> defer>) which will defer execution until after the page has completely
    >> loaded.
    >>
    >> In neither case is async operation likely to be extremely useful, I've
    >> never
    >> managed to get XMLHTTP events to work quite right in HTML script, and on
    >> the
    >> server side, ASP doesn't lend itself to async calls at all. You'll use
    >> more
    >> CPU looping on a readystate check than waiting for the call to
    >> complete --
    >> particularly without a native way to "sleep" the calling process.
    >>
    >> What's more, async calls would be more likely to incur more connections,
    >> not
    >> less likely (given a single-threaded environment like ASP script.)
    >>
    >> Lastly, 30 minutes is an awfully long time to hang, so it would seem at
    >> least a little deeper than the connection limit.
    >>
    >>
    >> -Mark
    >>
    >>
    >> > If that the case, can I change async mode to true (async=true) so that
    >> > it
    >> > will only take one connection at a time, meanwhile other concurrent
    >> > connections will loop and wait till XMLHTTP is ready to process data
    >> > again.
    >> > Will that work?
    >> >
    >> > Please help me cause I am not sure whether my impression is correct or
    >> > not.
    >> > Thanks!

    >>
    >>
    >>
    Mark J. McGinty, Sep 26, 2005
    #4
  5. Vanessa

    Vanessa Guest

    Mark,

    Yes! If the time out error occurs from using ServerXMLHTTP, it hangs for
    half an hour or so too! :( It's like if I used XMLHTTP, it just hangs IE
    with no error message. If I used ServerXMLHTTP, it will give me time out
    error. For both cases, it doesn't occur all the times and I have to wait for
    half an hour or so for it to be back up again. But too bad I can't simply
    restart IIS cause we have so many users connect to it. So if it's not the
    last thing we can do to fix the problem, we can't restart it! :(

    So Mark, how can I trap the error and retry? Is that using On Error resume
    next statement? I think I tried it before but seems like doesn't work or so.
    Here is my code calling XMLHTTP:
    Response.Buffer = True
    Set xml = Server.CreateObject("Microsoft.XMLHTTP")
    'Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
    'xml.setTimeouts 60000, 60000, 60000, 60000
    xml.Open "POST", PostURL, False,"",""
    xml.Send
    FOBprice = xml.responseText
    Set xml = Nothing

    and yes, I am using SQL Server and thanks for the tips on checking deadlock
    situation! I will definitely look it up if this condition occurs again! So
    if it occurs again, will the status for that particular process show
    "deadlock"? If yes, can I kill that process and the problem will be fixed?

    Thanks again and again :)

    Vanessa

    "Mark J. McGinty" wrote:

    >
    > "Vanessa" <> wrote in message
    > news:...
    > >I am talking about using XMLHTTP in server-side ASP code. However, I have
    > > tried using ServerXMLHTTP, namely MSXML2.ServerXMLHTTP object, in replace
    > > of
    > > Microsoft.XMLHTTP. Sometimes it works perfectly fine but sometimes it
    > > gives
    > > me time out error, which gave me a headache:
    > > msxml3.dll error '80072ee2'
    > > The operation timed out

    >
    > That beats hanging IE for half an hour, doesn't it? :) You could trap the
    > error and retry, but the core issue would be whatever's causing it to
    > timeout. Is there any chance the underlying SQL is deadlocking? When the
    > condition occurs again, use Enterprise Manager -> Management -> Current
    > Activity -> Process Info, or execute sp_who2 in Query Analyzer, to check for
    > any blocking processes.
    >
    > That assumes, of course, you're using SQL Server as the database back-end.
    > If not, deadlock is still the avenue I would pursue, but I don't know enough
    > about Oracle or MySQL (and don't care enough about Jet) to offer any real
    > help.
    >
    > > For using XMLHTTP, my two asp pages are in different virtual directories.
    > > The calling asp page will call XMLHTTP object to get some data dynamically
    > > from other asp page and then display information to the IE. Hm.. so
    > > setting
    > > async to true will not help in this issue...
    > >
    > > If two asp pages are in the same virtual directory, will it hang IE all
    > > the
    > > times or just once in a while? And once it hangs, do we have to restart
    > > the
    > > IIS in order to work again or we can just wait? Cause in my situation, it
    > > will hang just once in a while. Thanks!!

    >
    > Caller and callee in the same virtual dir will hang IIS every time; IE also
    > appears to hang but that's more of a side-effect than anything else. I
    > personally have never been patient enough to wait that long for a hung
    > process. IIS may do something to self-correct eventually, but I always
    > end-up resetting it myself long before that occurs. :)
    >
    >
    > > Vanessa
    > >
    > > "Mark J. McGinty" wrote:
    > >
    > >>
    > >> "Vanessa" <> wrote in message
    > >> news:...
    > >> >I have a question regarding async mode for calling Microsoft.XMLHTTP
    > >> >object.
    > >> >
    > >> > Microsoft.XMLHTTP hangs the IE once in a while suddenly, but it will
    > >> > work
    > >> > again after half an hour or so without doing anything. I have searched
    > >> > through the Internet and seems like the reason it hangs the browser
    > >> > it's
    > >> > because XMLHTTP limits you to two concurrent HTTP connections to each
    > >> > remote
    > >> > host; so if more than 2 concurrent connections strike the script which
    > >> > is
    > >> > calling XMLHTTP, it will hang. Is that true?
    > >>
    > >> Are you talking about using XMLHTTP in server-side ASP code, or
    > >> client-side
    > >> script [emitted from ASP, but executed by IE]?
    > >>
    > >> If the former, you should be using XMLHTTPServer -- but note that with
    > >> either object, you cannot call another ASP in the same virtual directory
    > >> as
    > >> the calling ASP. (Doing so will hang the virtual server.)
    > >>
    > >> If the latter, try adding the "defer" attribute to your script tags
    > >> (<script
    > >> defer>) which will defer execution until after the page has completely
    > >> loaded.
    > >>
    > >> In neither case is async operation likely to be extremely useful, I've
    > >> never
    > >> managed to get XMLHTTP events to work quite right in HTML script, and on
    > >> the
    > >> server side, ASP doesn't lend itself to async calls at all. You'll use
    > >> more
    > >> CPU looping on a readystate check than waiting for the call to
    > >> complete --
    > >> particularly without a native way to "sleep" the calling process.
    > >>
    > >> What's more, async calls would be more likely to incur more connections,
    > >> not
    > >> less likely (given a single-threaded environment like ASP script.)
    > >>
    > >> Lastly, 30 minutes is an awfully long time to hang, so it would seem at
    > >> least a little deeper than the connection limit.
    > >>
    > >>
    > >> -Mark
    > >>
    > >>
    > >> > If that the case, can I change async mode to true (async=true) so that
    > >> > it
    > >> > will only take one connection at a time, meanwhile other concurrent
    > >> > connections will loop and wait till XMLHTTP is ready to process data
    > >> > again.
    > >> > Will that work?
    > >> >
    > >> > Please help me cause I am not sure whether my impression is correct or
    > >> > not.
    > >> > Thanks!
    > >>
    > >>
    > >>

    >
    >
    >
    Vanessa, Sep 26, 2005
    #5
  6. "Vanessa" <> wrote in message
    news:...
    > Mark,
    >
    > Yes! If the time out error occurs from using ServerXMLHTTP, it hangs for
    > half an hour or so too! :( It's like if I used XMLHTTP, it just hangs IE
    > with no error message. If I used ServerXMLHTTP, it will give me time out
    > error. For both cases, it doesn't occur all the times and I have to wait
    > for
    > half an hour or so for it to be back up again. But too bad I can't simply
    > restart IIS cause we have so many users connect to it. So if it's not the
    > last thing we can do to fix the problem, we can't restart it! :(
    >
    > So Mark, how can I trap the error and retry? Is that using On Error resume
    > next statement? I think I tried it before but seems like doesn't work or
    > so.


    Yes, you've got it... there are some untrappable errors but anything that's
    thrown by a COM object should trap. Then after Send returns, test the Err
    object:

    > Here is my code calling XMLHTTP:
    > Response.Buffer = True
    > Set xml = Server.CreateObject("Microsoft.XMLHTTP")
    > 'Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
    > 'xml.setTimeouts 60000, 60000, 60000, 60000
    > xml.Open "POST", PostURL, False,"",""


    On Error Resume Next

    > xml.Send


    If Err.Number > 0 Then ' you may want to test for a specific error value
    ' do something here to retry, maybe wrap the XML call in a function and
    call it here
    End If

    On Error Goto 0 ' turn errors back on

    > FOBprice = xml.responseText
    > Set xml = Nothing
    >
    > and yes, I am using SQL Server and thanks for the tips on checking
    > deadlock
    > situation! I will definitely look it up if this condition occurs again!
    > So
    > if it occurs again, will the status for that particular process show
    > "deadlock"? If yes, can I kill that process and the problem will be fixed?


    In Enterprise Manager Process Info there are the columns Blocking and
    Blocked By, that give you the involved process IDs. You're looking for one
    that's got a number in Blocked By. Double-click the item in the list and
    usually it will show you the last SQL statement executed by the process.
    Click the kill button, game over.

    In Query Analyzer, the results of sp_who2 have a BlkBy column, and you can
    execute the KILL command to kill a process.

    Good Luck! :)

    -Mark



    > Thanks again and again :)
    >
    > Vanessa
    >
    > "Mark J. McGinty" wrote:
    >
    >>
    >> "Vanessa" <> wrote in message
    >> news:...
    >> >I am talking about using XMLHTTP in server-side ASP code. However, I
    >> >have
    >> > tried using ServerXMLHTTP, namely MSXML2.ServerXMLHTTP object, in
    >> > replace
    >> > of
    >> > Microsoft.XMLHTTP. Sometimes it works perfectly fine but sometimes it
    >> > gives
    >> > me time out error, which gave me a headache:
    >> > msxml3.dll error '80072ee2'
    >> > The operation timed out

    >>
    >> That beats hanging IE for half an hour, doesn't it? :) You could trap
    >> the
    >> error and retry, but the core issue would be whatever's causing it to
    >> timeout. Is there any chance the underlying SQL is deadlocking? When
    >> the
    >> condition occurs again, use Enterprise Manager -> Management -> Current
    >> Activity -> Process Info, or execute sp_who2 in Query Analyzer, to check
    >> for
    >> any blocking processes.
    >>
    >> That assumes, of course, you're using SQL Server as the database
    >> back-end.
    >> If not, deadlock is still the avenue I would pursue, but I don't know
    >> enough
    >> about Oracle or MySQL (and don't care enough about Jet) to offer any real
    >> help.
    >>
    >> > For using XMLHTTP, my two asp pages are in different virtual
    >> > directories.
    >> > The calling asp page will call XMLHTTP object to get some data
    >> > dynamically
    >> > from other asp page and then display information to the IE. Hm.. so
    >> > setting
    >> > async to true will not help in this issue...
    >> >
    >> > If two asp pages are in the same virtual directory, will it hang IE all
    >> > the
    >> > times or just once in a while? And once it hangs, do we have to
    >> > restart
    >> > the
    >> > IIS in order to work again or we can just wait? Cause in my situation,
    >> > it
    >> > will hang just once in a while. Thanks!!

    >>
    >> Caller and callee in the same virtual dir will hang IIS every time; IE
    >> also
    >> appears to hang but that's more of a side-effect than anything else. I
    >> personally have never been patient enough to wait that long for a hung
    >> process. IIS may do something to self-correct eventually, but I always
    >> end-up resetting it myself long before that occurs. :)
    >>
    >>
    >> > Vanessa
    >> >
    >> > "Mark J. McGinty" wrote:
    >> >
    >> >>
    >> >> "Vanessa" <> wrote in message
    >> >> news:...
    >> >> >I have a question regarding async mode for calling Microsoft.XMLHTTP
    >> >> >object.
    >> >> >
    >> >> > Microsoft.XMLHTTP hangs the IE once in a while suddenly, but it will
    >> >> > work
    >> >> > again after half an hour or so without doing anything. I have
    >> >> > searched
    >> >> > through the Internet and seems like the reason it hangs the browser
    >> >> > it's
    >> >> > because XMLHTTP limits you to two concurrent HTTP connections to
    >> >> > each
    >> >> > remote
    >> >> > host; so if more than 2 concurrent connections strike the script
    >> >> > which
    >> >> > is
    >> >> > calling XMLHTTP, it will hang. Is that true?
    >> >>
    >> >> Are you talking about using XMLHTTP in server-side ASP code, or
    >> >> client-side
    >> >> script [emitted from ASP, but executed by IE]?
    >> >>
    >> >> If the former, you should be using XMLHTTPServer -- but note that with
    >> >> either object, you cannot call another ASP in the same virtual
    >> >> directory
    >> >> as
    >> >> the calling ASP. (Doing so will hang the virtual server.)
    >> >>
    >> >> If the latter, try adding the "defer" attribute to your script tags
    >> >> (<script
    >> >> defer>) which will defer execution until after the page has completely
    >> >> loaded.
    >> >>
    >> >> In neither case is async operation likely to be extremely useful, I've
    >> >> never
    >> >> managed to get XMLHTTP events to work quite right in HTML script, and
    >> >> on
    >> >> the
    >> >> server side, ASP doesn't lend itself to async calls at all. You'll
    >> >> use
    >> >> more
    >> >> CPU looping on a readystate check than waiting for the call to
    >> >> complete --
    >> >> particularly without a native way to "sleep" the calling process.
    >> >>
    >> >> What's more, async calls would be more likely to incur more
    >> >> connections,
    >> >> not
    >> >> less likely (given a single-threaded environment like ASP script.)
    >> >>
    >> >> Lastly, 30 minutes is an awfully long time to hang, so it would seem
    >> >> at
    >> >> least a little deeper than the connection limit.
    >> >>
    >> >>
    >> >> -Mark
    >> >>
    >> >>
    >> >> > If that the case, can I change async mode to true (async=true) so
    >> >> > that
    >> >> > it
    >> >> > will only take one connection at a time, meanwhile other concurrent
    >> >> > connections will loop and wait till XMLHTTP is ready to process data
    >> >> > again.
    >> >> > Will that work?
    >> >> >
    >> >> > Please help me cause I am not sure whether my impression is correct
    >> >> > or
    >> >> > not.
    >> >> > Thanks!
    >> >>
    >> >>
    >> >>

    >>
    >>
    >>
    Mark J. McGinty, Sep 26, 2005
    #6
  7. Vanessa

    Vanessa Guest

    Thanks Mark!
    I will try both. Thanks for your help :)

    "Mark J. McGinty" wrote:

    >
    > "Vanessa" <> wrote in message
    > news:...
    > > Mark,
    > >
    > > Yes! If the time out error occurs from using ServerXMLHTTP, it hangs for
    > > half an hour or so too! :( It's like if I used XMLHTTP, it just hangs IE
    > > with no error message. If I used ServerXMLHTTP, it will give me time out
    > > error. For both cases, it doesn't occur all the times and I have to wait
    > > for
    > > half an hour or so for it to be back up again. But too bad I can't simply
    > > restart IIS cause we have so many users connect to it. So if it's not the
    > > last thing we can do to fix the problem, we can't restart it! :(
    > >
    > > So Mark, how can I trap the error and retry? Is that using On Error resume
    > > next statement? I think I tried it before but seems like doesn't work or
    > > so.

    >
    > Yes, you've got it... there are some untrappable errors but anything that's
    > thrown by a COM object should trap. Then after Send returns, test the Err
    > object:
    >
    > > Here is my code calling XMLHTTP:
    > > Response.Buffer = True
    > > Set xml = Server.CreateObject("Microsoft.XMLHTTP")
    > > 'Set xml = Server.CreateObject("MSXML2.ServerXMLHTTP")
    > > 'xml.setTimeouts 60000, 60000, 60000, 60000
    > > xml.Open "POST", PostURL, False,"",""

    >
    > On Error Resume Next
    >
    > > xml.Send

    >
    > If Err.Number > 0 Then ' you may want to test for a specific error value
    > ' do something here to retry, maybe wrap the XML call in a function and
    > call it here
    > End If
    >
    > On Error Goto 0 ' turn errors back on
    >
    > > FOBprice = xml.responseText
    > > Set xml = Nothing
    > >
    > > and yes, I am using SQL Server and thanks for the tips on checking
    > > deadlock
    > > situation! I will definitely look it up if this condition occurs again!
    > > So
    > > if it occurs again, will the status for that particular process show
    > > "deadlock"? If yes, can I kill that process and the problem will be fixed?

    >
    > In Enterprise Manager Process Info there are the columns Blocking and
    > Blocked By, that give you the involved process IDs. You're looking for one
    > that's got a number in Blocked By. Double-click the item in the list and
    > usually it will show you the last SQL statement executed by the process.
    > Click the kill button, game over.
    >
    > In Query Analyzer, the results of sp_who2 have a BlkBy column, and you can
    > execute the KILL command to kill a process.
    >
    > Good Luck! :)
    >
    > -Mark
    >
    >
    >
    > > Thanks again and again :)
    > >
    > > Vanessa
    > >
    > > "Mark J. McGinty" wrote:
    > >
    > >>
    > >> "Vanessa" <> wrote in message
    > >> news:...
    > >> >I am talking about using XMLHTTP in server-side ASP code. However, I
    > >> >have
    > >> > tried using ServerXMLHTTP, namely MSXML2.ServerXMLHTTP object, in
    > >> > replace
    > >> > of
    > >> > Microsoft.XMLHTTP. Sometimes it works perfectly fine but sometimes it
    > >> > gives
    > >> > me time out error, which gave me a headache:
    > >> > msxml3.dll error '80072ee2'
    > >> > The operation timed out
    > >>
    > >> That beats hanging IE for half an hour, doesn't it? :) You could trap
    > >> the
    > >> error and retry, but the core issue would be whatever's causing it to
    > >> timeout. Is there any chance the underlying SQL is deadlocking? When
    > >> the
    > >> condition occurs again, use Enterprise Manager -> Management -> Current
    > >> Activity -> Process Info, or execute sp_who2 in Query Analyzer, to check
    > >> for
    > >> any blocking processes.
    > >>
    > >> That assumes, of course, you're using SQL Server as the database
    > >> back-end.
    > >> If not, deadlock is still the avenue I would pursue, but I don't know
    > >> enough
    > >> about Oracle or MySQL (and don't care enough about Jet) to offer any real
    > >> help.
    > >>
    > >> > For using XMLHTTP, my two asp pages are in different virtual
    > >> > directories.
    > >> > The calling asp page will call XMLHTTP object to get some data
    > >> > dynamically
    > >> > from other asp page and then display information to the IE. Hm.. so
    > >> > setting
    > >> > async to true will not help in this issue...
    > >> >
    > >> > If two asp pages are in the same virtual directory, will it hang IE all
    > >> > the
    > >> > times or just once in a while? And once it hangs, do we have to
    > >> > restart
    > >> > the
    > >> > IIS in order to work again or we can just wait? Cause in my situation,
    > >> > it
    > >> > will hang just once in a while. Thanks!!
    > >>
    > >> Caller and callee in the same virtual dir will hang IIS every time; IE
    > >> also
    > >> appears to hang but that's more of a side-effect than anything else. I
    > >> personally have never been patient enough to wait that long for a hung
    > >> process. IIS may do something to self-correct eventually, but I always
    > >> end-up resetting it myself long before that occurs. :)
    > >>
    > >>
    > >> > Vanessa
    > >> >
    > >> > "Mark J. McGinty" wrote:
    > >> >
    > >> >>
    > >> >> "Vanessa" <> wrote in message
    > >> >> news:...
    > >> >> >I have a question regarding async mode for calling Microsoft.XMLHTTP
    > >> >> >object.
    > >> >> >
    > >> >> > Microsoft.XMLHTTP hangs the IE once in a while suddenly, but it will
    > >> >> > work
    > >> >> > again after half an hour or so without doing anything. I have
    > >> >> > searched
    > >> >> > through the Internet and seems like the reason it hangs the browser
    > >> >> > it's
    > >> >> > because XMLHTTP limits you to two concurrent HTTP connections to
    > >> >> > each
    > >> >> > remote
    > >> >> > host; so if more than 2 concurrent connections strike the script
    > >> >> > which
    > >> >> > is
    > >> >> > calling XMLHTTP, it will hang. Is that true?
    > >> >>
    > >> >> Are you talking about using XMLHTTP in server-side ASP code, or
    > >> >> client-side
    > >> >> script [emitted from ASP, but executed by IE]?
    > >> >>
    > >> >> If the former, you should be using XMLHTTPServer -- but note that with
    > >> >> either object, you cannot call another ASP in the same virtual
    > >> >> directory
    > >> >> as
    > >> >> the calling ASP. (Doing so will hang the virtual server.)
    > >> >>
    > >> >> If the latter, try adding the "defer" attribute to your script tags
    > >> >> (<script
    > >> >> defer>) which will defer execution until after the page has completely
    > >> >> loaded.
    > >> >>
    > >> >> In neither case is async operation likely to be extremely useful, I've
    > >> >> never
    > >> >> managed to get XMLHTTP events to work quite right in HTML script, and
    > >> >> on
    > >> >> the
    > >> >> server side, ASP doesn't lend itself to async calls at all. You'll
    > >> >> use
    > >> >> more
    > >> >> CPU looping on a readystate check than waiting for the call to
    > >> >> complete --
    > >> >> particularly without a native way to "sleep" the calling process.
    > >> >>
    > >> >> What's more, async calls would be more likely to incur more
    > >> >> connections,
    > >> >> not
    > >> >> less likely (given a single-threaded environment like ASP script.)
    > >> >>
    > >> >> Lastly, 30 minutes is an awfully long time to hang, so it would seem
    > >> >> at
    > >> >> least a little deeper than the connection limit.
    > >> >>
    > >> >>
    > >> >> -Mark
    > >> >>
    > >> >>
    > >> >> > If that the case, can I change async mode to true (async=true) so
    > >> >> > that
    > >> >> > it
    > >> >> > will only take one connection at a time, meanwhile other concurrent
    > >> >> > connections will loop and wait till XMLHTTP is ready to process data
    > >> >> > again.
    > >> >> > Will that work?
    > >> >> >
    > >> >> > Please help me cause I am not sure whether my impression is correct
    > >> >> > or
    > >> >> > not.
    > >> >> > Thanks!
    > >> >>
    > >> >>
    > >> >>
    > >>
    > >>
    > >>

    >
    >
    >
    Vanessa, Sep 26, 2005
    #7
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. dong seok huh

    [Q] : async event counter

    dong seok huh, Oct 1, 2003, in forum: VHDL
    Replies:
    6
    Views:
    744
    Renaud Pacalet
    Oct 6, 2003
  2. Arnaud
    Replies:
    3
    Views:
    862
    Peter Alfke
    Jun 28, 2004
  3. Montek Singh
    Replies:
    0
    Views:
    536
    Montek Singh
    Jul 29, 2004
  4. Steven
    Replies:
    0
    Views:
    334
    Steven
    Nov 30, 2005
  5. yawnmoth

    Msxml*.XMLHTTP vs. Microsoft.XMLHTTP

    yawnmoth, Nov 7, 2006, in forum: Javascript
    Replies:
    11
    Views:
    365
    Matt Kruse
    Nov 9, 2006
Loading...

Share This Page