2

I have a web application that builds web-pages using agent (it's written in LS and we use [print html] to output HTML) and from time to time I see an error as below.

02-11-2020 10:00:18   HTTP Web Server: Agent did not complete within configured time limit [/path-to-database.nsf/web?openagent] Anonymous
02-11-2020 10:00:18   HTTP Server: Execution time limit exceeded by Agent '(Web)|Web' in database '/path-to-database.nsf'. Agent signer 'signer name'.

As a result HTTP task stuck so I have to restart it, but that means I have to monitor it all the time.

It does not seems to be related to agent time execution, otherwise I would have this issue constantly. The activity does not seems to be the issue as well, according to google analytics it's around ~50 active users.

I doubt [Server Tasks\Agent manager] will help, because agent runs under HTTP task.

Does anybody know how to figure out what is the reason of such issue and where I have to dig to fix it.

Update

Domino version 11.0

The agent is triggered by anonymous visitor and does some relatively heavy computation to construct HTML response (loops and lookups are present, but I'm sure all loops ends properly, without infinitive run).

I guess settings for HTTP Agents are under this section (so 2 mins).

Web Agents and Web Services

Run web agents and web services concurrently? Enabled

Web agent and web services timeout: 120 seconds

In general request takes between 300ms-1 second, however there are some heavy pages with 1-5 seconds (but nothing like 10 seconds or more).

I notice the error only when we get more than 50 active users (who activity open new pages and thus trigger the agent).

I guess Richard is right and there must be some condition when agent stuck (maybe related to views update or some background process).

For now I simply restart HTTP to get this issue fixed (for some time).

So my question could be re-phrased to:

What can cause delay of the agent that build web page (taking into account it's related to 50-100 active users).


Thanks a lot :-)

Dmytro Pastovenskyi
  • 5,240
  • 5
  • 37
  • 56
  • 1
    Why are you so sure that it's not actually exceeding the limit? What does the agent do? Does it have any loops in it, and what happens in those loops? What version of Domino? What is the configured time limit for web agents on the server? If you are usually coming in ten seconds under the limit, then it might be entirely reasonable to believe it goes over the limit "from time to time" . – Richard Schwartz Nov 02 '20 at 19:09
  • 1
    @richardSchwarts thanks for comment, I have updated post. – Dmytro Pastovenskyi Nov 02 '20 at 22:43
  • 2
    I wonder if it's somehow tied to the limit on active threads configured under Internet Protocols - HTTP. The description says that the server queues new requests if you reach the limit, but I wonder if it gives the thread away when the agent suspends waiting for a rebuild or for i/o completion, etc., and then it's at the bottom of the queue. If you've got more users than allowed threads, some agent instances might spend a lot of inactive time while suspended, waiting for a slot to open up. And maybe that waiting time still counts toward the time limit. – Richard Schwartz Nov 03 '20 at 13:56
  • 1
    @RichardSchwartz it's a very good point, it's set to 400 which could be not enough when there is a high activity from users. I will test that today and let you know. – Dmytro Pastovenskyi Nov 03 '20 at 14:48
  • 1
    @richardSchwartz I tried to play with settings - no luck. I suspect there are some limits when we talk about triggering agents via HTTP. I tried to simulate 50 users with empty agents - and it become slow with time. – Dmytro Pastovenskyi Nov 03 '20 at 23:12
  • Without knowing your code it is difficult to guess – Christoph S. Dec 10 '20 at 22:20

0 Answers0