Время ожидания отчета служб отчетов - PullRequest
13 голосов
/ 08 мая 2009

У нас есть отчет за 2005 год, который может содержать от 2 до 250 страниц со средним показателем в 10 баллов. Когда этот отчет разрабатывался, нашему разработчику сказали, что примерно 10 страниц - это правильное число, и не зная бизнес-область очень хорошо, он решил, что услуги по предоставлению отчетов были правильным подходом.

Теперь, когда отчет был развернут в PROD, у нас есть некоторые жалобы на истечение срока действия отчета. Ни разработчик, ни я в этом не очень удивлены, учитывая размер запрашиваемого отчета (250 страниц).

У меня вопрос: какие варианты у нас есть, чтобы использовать наш текущий отчет, который работает 95% времени и заставить его работать на оставшиеся 5%? Есть ли варианты конфигурации где-нибудь, чтобы улучшить производительность рендеринга или что-то подобное?

Отчет используется для возврата разрешения, так что размер может очень. Каждое разрешение страница имеет 4 разных метки возврата с логотипами и штрих-кодами.

Для уточнения:

Отчет довольно быстро обрабатывается от служб отчетов до средства просмотра отчетов, но когда мы экспортируем в PDF, это время загрузки.

Ответы [ 2 ]

20 голосов
/ 17 августа 2010

Вы можете играть с любым из следующих действий:

1) Изменить системные свойства SessionTimeout и SessionAccessTimeout.

Вот пример сценария для rs.exe, который установит эти значения для вас:

Public Sub Main()
    Dim props() as [Property]
    props = new [Property] () { new [Property](), new [Property]() }

    props(0).Name = "SessionTimeout"
    props(0).Value = timeout

    props(1).Name = "SessionAccessTimeout"
    props(1).Value = timeout

    rs.SetSystemProperties(props)
End Sub 

Вы можете запустить этот скрипт с помощью следующей команды:

rs -i sessionTimeout.rss -s http://yourserver.com/reportserver -v timeout="6000"

Время ожидания выражается в секундах, поэтому в этом примере для SessionTimeout и SessionAccessTimeouts устанавливается значение примерно полтора часа.

(через http://blogs.msdn.com/b/jgalla/archive/2006/10/11/session-timeout-during-execution.aspx)

2) Изменение времени ожидания выполнения отчета через диспетчер отчетов Открыть диспетчер отчетов В верхней части страницы нажмите Настройки сайта. Откроется страница общих свойств сайта.

Тайм-аут выполнения отчета Укажите, истекает ли время обработки отчета через определенное количество секунд. (через http://msdn.microsoft.com/en-us/library/ms181194.aspx)

3) Установить время выполнения HttpRuntime

  1. Откройте файл ReportServer Web.config, выбрав Пуск -> Администрирование -> Службы IIS.
  2. Оттуда разверните Веб-сайты -> Веб-сайт по умолчанию и нажмите ReportServer. На правой панели щелкните правой кнопкой мыши «Web.Config» и выберите «Открыть».
  3. Найдите параметр HttpRuntime. Если его не существует, вам придется создать его в разделе.
  4. Установите значение executeTimeout равным 10800 (3 часа), как показано ниже:
<system.web>
    <httpRuntime executionTimeout = "10800" />
</system.web>

4) Увеличение времени ожидания скрипта на сервере отчетов

  1. Зайдите на сервер отчетов и откройте информационные службы Интернета; щелкните правой кнопкой мыши ReportServer и выберите Свойства.
  2. Перейдите на вкладку «Параметры» и установите время ожидания сценария ASP равным 300 секундам (у меня это не сработало).

5) Настройте отчет так, чтобы он никогда не прерывался на сервере

  1. Откройте веб-браузер на сервере и перейдите на http://yourserver.com/Reports
  2. Перейдите в местоположение отчета и нажмите на отчет (ы) о проблеме.
  3. На левой панели щелкните Свойства.
  4. В «Тайм-ауте выполнения отчета» нажмите «Не выполнять тайм-аут выполнения отчета». (через http://geekswithblogs.net/ssrs/archive/2009/10/30/steps-to-resolve-ssrs-timeout-issues.aspx)
3 голосов
/ 08 мая 2009

Для каждого отчета в SSRS существует настройка времени ожидания выполнения отчета. По умолчанию они настроены на использование системных настроек по умолчанию, но их можно настроить через диспетчер отчетов или SSMS.

Вы уверены, что это не тайм-аут команды базы данных? Это можно настроить в строке подключения. Это неэффективный отчет или запрос? 250 страниц для отчета SSRS на самом деле не так уж и плохо. Мы часто запускаем большие отчеты. SSRS на самом деле превосходит большинство других механизмов отчетности, которые мы используем.

...