#lotus-notes #lotus-domino #lotusscript
#lotus-notes #lotus-domino #lotusscript
Вопрос:
У меня есть веб-приложение, которое создает веб-страницы с использованием agent (оно написано на LS, и мы используем [print html] для вывода HTML), и время от времени я вижу ошибку, как показано ниже.
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'.
В результате HTTP-задача застряла, поэтому я должен перезапустить ее, но это означает, что я должен постоянно ее отслеживать.
Похоже, это не связано с временем выполнения агента, иначе у меня постоянно возникала бы эта проблема. Активность, похоже, также не является проблемой, согласно Google Analytics, это около ~ 50 активных пользователей.
Я сомневаюсь, что [Задачи сервера диспетчер агентов] поможет, потому что агент выполняется под HTTP-задачей.
Кто-нибудь знает, как выяснить, в чем причина такой проблемы, и где я должен копать, чтобы ее исправить.
Обновить
Версия Domino 11.0
Агент запускается анонимным посетителем и выполняет некоторые относительно сложные вычисления для построения HTML-ответа (циклы и поисковые запросы присутствуют, но я уверен, что все циклы завершаются правильно, без бесконечного запуска).
Я предполагаю, что настройки для HTTP-агентов находятся в этом разделе (так что 2 минуты).
Веб-агенты и веб-службы
Запускать веб-агенты и веб-службы одновременно? Включено
Время ожидания веб-агента и веб-служб: 120 секунд
В общем случае запрос занимает от 300 мс до 1 секунды, однако есть несколько тяжелых страниц продолжительностью 1-5 секунд (но не более 10 секунд и более).
Я замечаю ошибку только тогда, когда мы получаем более 50 активных пользователей (которые открывают новые страницы и, таким образом, запускают агент).
Я думаю, Ричард прав, и должно быть какое-то условие, когда агент зависает (возможно, связано с обновлением представлений или каким-либо фоновым процессом).
На данный момент я просто перезапускаю HTTP, чтобы исправить эту проблему (на некоторое время).
Поэтому мой вопрос можно было бы перефразировать на:
Что может вызвать задержку агента, создающего веб-страницу (с учетом того, что она связана с 50-100 активными пользователями).
Большое спасибо 🙂
Комментарии:
1. Почему вы так уверены, что на самом деле это не превышает лимит? Что делает агент? Есть ли в нем какие-либо циклы и что происходит в этих циклах? Какая версия Domino? Каков заданный срок для веб-агентов на сервере? Если вы обычно приходите через десять секунд после ограничения, тогда может быть вполне разумно полагать, что оно превышает ограничение «время от времени».
2. @richardSchwarts спасибо за комментарий, я обновил сообщение.
3. Интересно, связано ли это каким-то образом с ограничением на активные потоки, настроенные в соответствии с интернет-протоколами — HTTP. В описании говорится, что сервер ставит в очередь новые запросы, если вы достигнете предела, но мне интересно, не прерывает ли он поток, когда агент приостанавливает ожидание перестройки или завершения ввода-вывода и т. Д., А Затем он находится в нижней части очереди. Если у вас больше пользователей, чем разрешено потокам, некоторые экземпляры агента могут проводить много времени в режиме ожидания в ожидании открытия слота. И, возможно, это время ожидания все еще учитывается в отношении срока.
4. @RichardSchwartz это очень хороший момент, он установлен на 400, чего может быть недостаточно при высокой активности пользователей. Я проверю это сегодня и дам вам знать.
5. @richardSchwartz Я пытался поиграть с настройками — не повезло. Я подозреваю, что существуют некоторые ограничения, когда мы говорим о запуске агентов через HTTP. Я попытался смоделировать 50 пользователей с пустыми агентами — и со временем это стало медленным.