Web Service randomly hangs when being called from SOAP::Lite

Discussion in 'ASP .Net Web Services' started by Gary W. Smith, Aug 4, 2009.

  1. I have a web service that hits a database and generates a generic list
    to be returned to the caller. Currently there are 45 items in that
    list. The database response time is negligable and everything is
    wrapped in a try/catch, return an empty list.

    When I run the client from my perl script (whic is running under
    CentOS 5.3), I can execute it countless times (>50) consecutively.
    Basically, it runs as fast as I can hit up and then enter. So, I have
    it set as a cronjob to run once every 3 minutes. This process runs on
    3 machines. So, at max, is web service gets 3 hits per minutes. Now,
    with cron, it usually all comes in roughly at the same time. So the
    real access is 3 hits in 1 second, every 3 minutes.

    Anyway, if I let this thing run for an hour or so the web service just
    hangs. If I run the script manually, it will time out after 60
    seconds (the timeout value I have set inside of the SOAP::Lite

    So, I stop all of the jobs, wait 10 minutes, and the .net web services
    are still in a hung state. Running netstat on all machines (including
    IIS) shows no active connections on the web service port (it's not
    using port 80, rather a custom port). Looking into the IIS logs there
    are a number of requests and it just stops. So obviously it's not
    logging the failures because it's not getting to that point.

    I have tweaked the machine.config based on some other articles,
    without success.

    <processModel autoConfig="false" maxWorkerThreads="200"
    maxIoThreads="100" minWorkerThreads="100" />

    and in the web.config

    <httpRuntime executionTimeout="60" />

    Two things that stick out from the MS site is A) HTTP 1.1 allowing
    only two connections (thus the chance to the machine config) and B)
    editing the timeout for the web service from the calling script.

    I would think that there should be a better alternative than making
    the caller behave properly as web service servers should be a little
    more hardened against bad client code. I already run all of the
    virtual sites/directories in seperate app pools. The server has
    plenty of ram/cpu and the affected web service is only consuming 40mb
    ram (as it's the only w3c process running at this point).

    So what I missing? How can I prevent a possible rouge calling script
    from killing my IIS instance?
    Gary W. Smith, Aug 4, 2009
    1. Advertisements

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. Aaron Brady

    SQL, lite lite lite

    Aaron Brady, Dec 29, 2008, in forum: Python
    Aaron Brady
    Jan 1, 2009
  2. John Harkin
    John Harkin
    Jun 28, 2004
  3. Replies:
  4. JGH
  5. droesler
    Aug 31, 2010

Share This Page