Домены приложений для приложений сервера отчетов
В службах Reporting Services сервер отчетов реализован как единственная служба, включающая веб-службу сервера отчетов, диспетчер отчетов и приложение фоновой обработки. Каждое приложение эксплуатируется в собственном домене приложения, в составе общего процесса сервера отчетов. Создание, настройка и управление доменами приложений обычно осуществляются внутри процесса. Однако знание того, как происходят операции очистки для доменов приложений сервера отчетов, может быть полезным при исследовании проблем производительности или использования памяти и при устранении неполадок в работе службы.
Примечание |
---|
При настройке доступа к построителю отчетов на сервере отчетов, который использует обычную проверку подлинности, построитель отчетов выполняется в своем собственном домене приложений. Это домен приложений, отличный от других доменов приложений, которые запускаются в процессе сервера. Он управляется контроллером служб и не зависит от функций управления памятью, которые перераспределяют память в процессе ее активного использования на сервере отчетов. |
В следующем списке описаны события, которые становятся причиной выполнения операций очистки домена приложений служб Reporting Services.
Плановые операции очистки, выполняемые через стандартные интервалы времени.
Изменения конфигурации на сервере отчетов.
Изменения конфигурации ASP.NET.
Сбой выделения памяти.
В следующей таблице приведены итоговые сведения о том, как происходит очистка домена приложений в ответ на эти события.
Событие |
Описание события |
Относится к |
Настраиваемый |
Описание операции очистки |
---|---|---|---|---|
Плановые операции очистки, выполняемые через стандартные интервалы времени |
По умолчанию, домены приложений очищаются через каждые 12 часов. Плановые операции очистки чаще всего выполняются применительно к приложениям ASP.NET, обеспечивающих общую работоспособность процесса. |
Веб-служба сервера отчетов Диспетчер отчетов Приложение фоновой обработки |
Да. Значение параметра конфигурации RecycleTime в файле RSReportServer.config определяет интервал очистки. Параметр MaxAppDomainUnloadTime задает время ожидания, в течение которого допускается завершение фоновой обработки. |
Приложение ASP.NET управляет операцией очистки для веб-службы и диспетчера отчетов. Для приложения фоновой обработки сервер отчетов создает новый домен приложения для новых заданий, инициированных по расписанию. Завершение уже выполняемых заданий в текущем домене приложения допускается до истечения времени ожидания. |
Изменения конфигурации на сервере отчетов |
Службы Reporting Services очищают домены приложений в ответ на изменения в файле RSReportServer.config. |
Веб-служба сервера отчетов Диспетчер отчетов Приложение фоновой обработки |
Нет. |
Остановить операции очистки невозможно. Тем не менее, операции очистки, выполняемые в ответ на изменения конфигурации, осуществляются таким же образом, как и плановые операции очистки. Для новых запросов создаются новые домены приложений, в то время как текущие запросы и задания завершаются в текущем домене приложения. |
Изменения конфигурации ASP.NET |
ASP.NET осуществляет очистку доменов приложений, если происходят изменения в отслеживаемых им файлах (например, в файлах machine.config и Web.config, а также в программных файлах ASP.NET). |
Веб-служба сервера отчетов Диспетчер отчетов |
Нет. |
ASP.NET управляет работой. Операции очистки, инициированные ASP.NET, не затрагивают домен приложения фоновой обработки. |
Нехватка памяти и ошибки при выделении памяти |
В среде CLR SQL Server немедленно происходит очистка доменов приложений в случае ошибки при выделении памяти или в условиях значительной нехватки памяти на сервере. |
Веб-служба сервера отчетов Диспетчер отчетов Приложение фоновой обработки |
Нет. |
При значительной нехватке памяти сервер отчетов не принимает новые запросы в текущем домене приложения. Пока сервер отклоняет новые запросы, происходят ошибки HTTP 503. Новые домены приложений не создаются до тех пор, пока не произойдет выгрузка старого домена приложения. Это означает, что в случае внесения изменений в файл конфигурации в условиях значительной нехватки памяти на сервере, выполняемые запросы и задания могут не запускаться или не завершаться. В случае ошибки при выполнении операции выделения памяти происходит немедленный перезапуск всех доменов приложений. Выполняемые задания и запросы уничтожаются. Необходимо перезапустить эти задания и запросы вручную. |
Запланированные и незапланированные операции очистки
Операции очистки могут быть либо запланированными, либо незапланированными, в зависимости от условий, которые приводят к выполнению операции.
Запланированные операции очистки происходят через постоянные интервалы, которые определены в файле RSReportServer.config. По умолчанию— через каждые 12 часов. Это характерно для приложений ASP.NET, обеспечивающих общую работоспособность процесса. Для запланированных операций очистки сервер отчетов создает дополнительные домены приложений для новых запросов. Завершение уже выполняемых запросов в текущем домене приложения допускается до истечения времени ожидания. Значения параметров конфигурации, которые управляют запланированными операциями очистки, задаются для всего сервера в целом. Возможность настроить отдельное расписание очистки или пороговое значение памяти для каждого приложения отсутствует.
Незапланированные операции очистки происходят в произвольные моменты времени в ответ на изменения конфигурации, нехватку памяти и ошибки при выполнении операций выделения памяти.
При изменениях конфигурации сервер отчетов предпринимает попытку использовать мягкую очистку, при которой выполняется перенаправление новых запросов на новый экземпляр домена приложения. Если мягкая очистка оканчивается неудачей, сервер инициирует жесткую очистку домена приложения, которая предусматривает отмену всех выполняемых запросов, останов текущих доменов приложений и перезапуск доменов приложений.
Возникновение ошибок при осуществлении операций выделения памяти указывает на то, что системные ресурсы являются недостаточными для объема обработки отчетов, выполняемого сервером. Операция жесткой очистки для всех доменов приложений происходит в ответ на ошибку операции выделения памяти. Все очереди запросов очищаются. Отмененные запросы не перезапускаются. Пользователи, которые просматривали отчет в оперативном режиме, должны обновить или повторно открыть отчет. Плановая обработка произойдет в следующий запланированный момент времени. Если связанная с этим задержка недопустима, то можно обновить моментальный снимок отчета вручную, либо изменить расписание подписки или расписание моментальных снимков отчетов, чтобы требуемая обработка была выполнена немедленно.
Очистка доменов приложений для веб-службы сервера отчетов, диспетчера отчетов и приложения фоновой обработки может осуществляться вместе или отдельно, в зависимости от обстоятельств, которые приводят к выполнению очистки.
Операции очистки, инициированные ASP.NET, затрагивают только приложения служб Reporting ServicesASP.NET: веб-службу сервера отчетов и диспетчер отчетов. В ASP.NET очистка доменов приложений зависит от того, имеются ли изменения в отслеживаемых файлах. Операции очистки, которые инициированы ASP.NET, как правило, являются независимыми от операций очистки, относящихся к приложениям фоновой обработки.
Операции очистки, инициированные сервером отчетов, обычно затрагивают веб-службу сервера отчетов, диспетчер отчетов и приложение фоновой обработки. Операции очистки происходят в ответ на изменения значений параметров конфигурации и перезапуски службы.
Значения параметров конфигурации RSReportServer для доменов приложений
Параметры конфигурации задаются в файле RSReportServer.config. В следующем примере показаны параметры конфигурации по умолчанию, относящиеся к запланированному выполнению очистки домена приложения.
<RecycleTime>720</RecycleTime>
<MaxAppDomainUnloadTime>30</MaxAppDomainUnloadTime>
Эти элементы описываются в следующей таблице.
Элемент |
Относится к |
Определение |
---|---|---|
RecycleTime |
Все три домена приложений служб Reporting Services |
Указывает, как часто происходит очистка доменов приложений. По умолчанию расписание очистки соответствует 12-часовой схеме, обычно применяемой для очистки домена приложения ASP.NET. С указанного в расписании времени все новые запросы перенаправляются новому экземпляру домена приложений. Запросы, которые в данный момент выполняются на исходном экземпляре, отрабатывают до завершения. После завершения всех процессов исходный экземпляр удаляется, а новый экземпляр становится единственным активным экземпляром домена приложений. Значение по умолчанию составляет 720 минут. |
MaxAppDomainUnloadTime |
Только домен приложения фоновой обработки |
По умолчанию сервер отчетов предоставляет 30 минут для завершения работы домена приложения во время операции очистки. Если выполняемые задания не могут быть завершены в течение предоставленного времени (или если задание занимает больше времени, чем позволяет период ожидания), экземпляр домена приложения немедленно перезапускается. Все незавершенные задания прерываются. Дополнительные сведения о просмотре состояния или отмене заданий, выполняемых на сервере отчетов, см. в разделе Отмена заданий сервера отчетов (среда Management Studio). |
Примечание |
---|
Хотя веб-служба сервера отчетов и диспетчер отчетов являются приложениями ASP.NET, они не реагируют на плановую очистку домена приложений, которая может быть указана в файле machine.config для приложений ASP.NET, развернутых на сервере служб IIS. |