Поделиться через


Определение состояния выполнения

Протокол HTTP не хранит сведения о соединении и состоянии. Это означает, что он не может автоматически определить, что различные запросы получены от одного клиента или что один экземпляр обозревателя продолжает активно просматривать страницу или веб-узел. Сеансы создают логическое соединение, чтобы сохранять сведения о состоянии при передаче между сервером и клиентом по протоколу HTTP. Пользовательские сведения, относящиеся к определенному сеансу, называются состоянием сеанса.

В задачи управления сеансом входит сопоставление HTTP-запроса с предыдущими запросами, созданными в том же сеансе. Без управления сеансом такие запросы оказываются не связанными с веб-службой сервера отчетов, поскольку протокол HTTP по своей природе не сохраняет сведения о соединении и о состоянии.

В службах Reporting Services не применяется целостный подход к состоянию сеанса, как в ASP.NET, однако во время выполнения отчетов сервер отчетов сохраняет состояние между вызовами методов в форме объекта выполнения. Объект выполнения позволяет пользователю взаимодействовать с отчетом различным образом, включая загрузку отчета с сервера отчетов, задание для отчета учетных данных и параметров и подготовку отчета к просмотру.

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

Обычно время существования объект выполнения отсчитывается от момента, когда пользователь переходит в обозреватель или клиентское приложение и выбирает отчет для просмотра. Выполнение прекращается после истечения короткого времени ожидания с момента получения последнего запроса на выполнение (по умолчанию время ожидания составляет 20 минут).

С точки зрения веб-службы время существования отсчитывается от момента, когда вызываются методы LoadReport, LoadReportDefinition или Render веб-службы сервера отчетов. Приложение может использовать другие методы для работы в активным объектом выполнения (например, для задания параметров и источников данных). Выполнение прекращается после истечения короткого времени ожидания с момента получения последнего запроса на выполнение (по умолчанию время ожидания составляет 20 минут).

Приложение отслеживает несколько активных объектов выполнения между вызовами методов Render и RenderStream веб-службы, сохраняя свойство ExecutionID, которое возвращается в заголовке SOAP из методов LoadReport и LoadReportDefinition.

На следующей схеме показаны маршруты обработки и подготовки к просмотру для отчетов.

Путь обработки или подготовки отчета

Для поддержки описанных выше функций текущий метод Render протокола SOAP был разбит на несколько методов, которые представляют этапы инициализации выполнения, обработки и подготовки к просмотру.

Чтобы подготовить отчет к просмотру программным образом, необходимо выполнить следующие действия.

Пока отчет участвует в сеансе, может измениться базовый отчет, хранящийся в базе данных сервера отчетов. Например, может измениться определение отчета, сам отчет может быть удален или перемещен, а также могут измениться разрешения пользователя. Если отчет участвует в активном сеансе, то на него не распространяются изменения, вносимые в базовый отчет (хранящийся в базе данных сервера отчетов).

Сеансом отчета также можно управлять с помощь команд для доступа по URL-адресу. Дополнительные сведения см. в разделе Управление сеансами отчетов с помощью URL-адреса.