Share via


Identificar o estado de execução

Hypertext Transfer Protocol (HTTP) é um protocolo sem conexão e sem monitoração de estado. Estar sem conexão e sem monitoração de estado significa que ele não indica automaticamente se solicitações diferentes vêm do mesmo cliente ou mesmo se uma única instância do navegador ainda está visualizando ativamente uma página ou site. As sessões criam uma conexão lógica para manter o estado entre servidor e cliente por meio do HTTP. As informações específicas para o usuário, pertinentes a uma sessão específica, são conhecidas como o estado da sessão.

O gerenciamento de sessão envolve a correlação de uma solicitação de HTTP com outras solicitações anteriores geradas pela mesma sessão. Sem o gerenciamento de sessão, essas solicitações parecem não relacionadas ao serviço Web do servidor de relatório devido à natureza sem-conexão e sem-estado do protocolo HTTP.

O Reporting Services não expõe um conceito holístico de estado de sessão, como o exposto por ASP.NET. Entretanto, ao executar relatórios, o servidor de relatório mantém o estado entre as chamadas de método no formulário de uma execução. A execução permite que o usuário interaja com o relatório de várias maneiras – incluindo o carregamento do relatório do servidor de relatório, configurando credenciais e parâmetros para o relatório e renderizando o relatório.

Enquanto se comunicam com um servidor de relatório, os clientes usam a execução para gerenciar a exibição de relatório e a navegação do usuário para outras páginas de um relatório e para mostrar ou ocultar seções de um relatório. Existe uma execução exclusiva para cada relatório que o aplicativo cliente está executando.

Em geral, o tempo de vida de uma execução inicia quando um usuário navega até um navegador ou aplicativo cliente e seleciona um relatório para exibição. A execução é descartada após um curto período de tempo limite após o recebimento da última solicitação para a execução (o tempo limite padrão é de 20 minutos).

A partir de uma perspectiva de serviço Web, o tempo de vida inicia quando os métodos do serviço Web do servidor de relatório LoadReport, LoadReportDefinitionou Render são chamados. O aplicativo pode usar outros métodos para manipular a execução ativa (por exemplo, definindo os parâmetros e as fontes de dados de configuração). A execução é descartada após um curto período de tempo limite após o recebimento da última solicitação para a execução (o tempo limite padrão é de 20 minutos).

Um aplicativo controla várias execuções ativas entre chamadas para o serviço Render Web e RenderStream métodos salvando o ExecutionID. A ID de execução é retornada no cabeçalho SOAP dos LoadReport métodos e LoadReportDefinition .

O diagrama a seguir mostra o processamento e a renderização do caminho para relatórios.

Diagram that shows the processing and rendering path for reports.

Para oferecer suporte às funções descritas anteriormente, o método SOAP Render atual é dividido em vários métodos que abrangem as fases de inicialização, processamento e renderização da execução.

Para renderizar programaticamente um relatório, você deve:

Enquanto um relatório estiver na sessão, o relatório subjacente armazenado no banco de dados do servidor de relatório poderá ser alterado. Por exemplo, a definição do relatório poderá ser alterada, o relatório poderá ser excluído ou movido e as permissões de usuário poderão ser alteradas. Se o relatório estiver em uma sessão ativa, as alterações no relatório subjacente (ou seja, o relatório armazenado no banco de dados do servidor de relatório) não o afetarão.

Você também pode gerenciar uma sessão de relatório usando os comandos de acesso da URL.

Render
Referência técnica (SSRS)
Usar cabeçalhos SOAP do Reporting Services