Processador de Agendamento e Entrega

O Reporting Services inclui um componente Processador de Agendamento e Entrega para oferecer suporte a operações agendadas e passar as extensões de entrega usadas no envio de relatórios para caixas de entrada de email ou destinos de pasta compartilhados.

O Processador de Agendamento e Entrega é um componente interno que o servidor de relatório usa para processar assinaturas e entrega de relatório, para atualizar um instantâneo ou para definir a expiração para um relatório armazenado em cache. Se você estiver configurando recursos de servidor ou solucionando um problema de assinatura ou entrega, poderá usar as informações deste tópico para entender os estágios do processamento agendado e as dependências de outros serviços e tecnologias. Este tópico também introduz as definições de configuração que podem ser usadas para gerenciar a fila de eventos.

Como o Processador de Agendamento e Entrega funciona

O Processador de Agendamento e Entrega fornece as seguintes funcionalidades:

  • Mantém uma fila de eventos e notificações no banco de dados do servidor de relatório. Em uma implantação em expansão, a fila é compartilhada por todos os servidores de relatório na implantação.

  • Chama o Processador de Relatório para executar relatórios, assinaturas de processo ou limpar um relatório armazenado em cache. Todo o processamento de relatório que ocorre como resultado de um evento de agendamento é executado como um processo em segundo plano.

  • Chama a extensão de entrega que é especificada em uma assinatura para que o relatório possa ser entregue.

Os outros aspectos de uma operação de agendamento e entrega são tratados por outros componentes e serviços que trabalham com o Processador de Agendamento e Entrega. Especificamente, o Processador de Agendamento e Entrega é executado no serviço Servidor de Relatório e usa o SQL Server Agent. A descrição passo a passo a seguir explica como as operações agendadas funcionam em uma implantação do Reporting Services:

  1. Uma operação agendada é definida quando um usuário cria um agendamento. O agendamento define uma data e hora que serão usadas para disparar uma assinatura para entrega de relatório, atualizar um instantâneo ou expirar um cache.

  2. O servidor de relatório salva as informações de agendamento no banco de dados do servidor de relatório.

  3. O servidor de relatório cria um trabalho correspondente no SQL Server Agent que inclui as informações de agendamento fornecidas. Os trabalhos são criados por um procedimento armazenado, usando a conexão aberta existente com o banco de dados do servidor de relatório.

  4. O SQL Server Agent executa o trabalho na data e hora especificadas no agendamento. O trabalho cria um evento que é adicionado a uma fila mantida pelo Reporting Services.

  5. O evento faz com que um processo de relatório ou de assinatura ocorra. Os eventos são processados quando são detectados na fila, e o relatório é processado ou entregue adequadamente.

    Antes que os eventos sejam processados, o Processador de Agendamento e Entrega executa uma etapa de autenticação para verificar se o proprietário da assinatura tem permissão para exibir o relatório. Para obter mais informações sobre assinaturas, consulte Processamento de assinaturas.

O Reporting Services mantém uma fila de eventos para todas as operações agendadas. Ele pesquisa a fila em intervalos regulares para verificar novos eventos. Por padrão, a fila é digitalizada em intervalos de 10 segundos. Você pode alterar o intervalo modificando as definições de configuração PollingInterval, IsNotificationService e IsEventService no arquivo RSReportServer.config. Para obter mais informações, consulte Arquivo de configuração RSReportServer.

Dependências de servidor

O Processador de Agendamento e Entrega requer que o serviço Servidor de Relatório e o SQL Server Agent sejam iniciados. O recurso Processamento de Agenda e Entrega deve ser habilitado através da propriedade ScheduleEventsAndReportDeliveryEnabled da faceta Configuração da Área da Superfície do Reporting Services no Gerenciamento Baseado em Políticas. O SQL Server Agent e o serviço Servidor de Relatório devem ser executados para que as operações agendadas ocorram.

ObservaçãoObservação

É possível usar a faceta Configuração da Área da Superfície do Reporting Services para parar as operações agendadas em uma base temporária ou permanente. Embora você possa criar e implantar extensões de entrega personalizadas, em si, o Processador de Agendamento e Entrega não é extensível. Não é possível alterar a forma como ele gerencia eventos e notificações. Para obter mais informações sobre como desativar recursos, consulte Como ativar e desativar recursos do Reporting Services.

Efeitos de parar o SQL Server Agent

O processamento de relatórios agendado usa o SQL Server Agent por padrão. Se você parar o serviço, nenhuma nova solicitação de processamento será adicionada á fila, a menos que seja adicionada programaticamente através do método FireEvent. Quando você reinicializa o serviço, os trabalhos que criam solicitações de processamento de relatório são reiniciados. O servidor de relatório não tenta recriar os trabalhos de processamento de relatório que possam ter ocorrido anteriormente quando o SQL Server Agent estava offline. Se você parar o SQL Server Agent por uma semana, todas as operações agendadas nessa semana serão perdidas.

ObservaçãoObservação

A funcionalidade que o SQL Server Agent fornece ao Reporting Services pode ser substituída pelo código personalizado que usa o método FireEvent para adicionar eventos de agendamento à fila.

Efeitos de parar o serviço Servidor de Relatório

Se você parar o serviço Servidor de Relatório, o SQL Server Agent continuará a adicionar solicitações de processamento de relatório à fila. As informações de status do SQL Server Agent indicam que o trabalho teve êxito. Porém, como o serviço Servidor de Relatório foi interrompido, nenhum processamento de relatório realmente ocorre. As solicitações continuarão a acumular na fila até que o serviço Servidor de Relatório seja reiniciado. Quando o serviço Servidor de Relatório é reiniciado, todas as solicitações de processamento de relatório que estão na fila são processadas.