Agendas no Reporting Services

O Reporting Services fornece agendas compartilhadas e específicas de relatório para ajudar a controlar o processamento e a distribuição de relatórios. A diferença entre os dois tipos de agendas é como elas são definidas, armazenadas e administradas. A construção interna dos dois tipos de agendas é a mesma. Todas as agendas especificam um tipo de recorrência: mensal, semanal ou diária. Dentro do tipo de recorrência, você define os intervalos e as faixas para a frequência com que um evento ocorre. O tipo de padrão de recorrência e a forma como ele é especificado são os mesmos para criar uma agenda compartilhada ou uma agenda específica de relatório.

  • São criadas agendas compartilhadas como itens separados. Depois que eles são criados, você faz referência a eles ao definir uma assinatura ou alguma outra operação agendada.

  • As agendas específicas do relatório são criadas ao definir uma assinatura ou as propriedades de execução de relatório. O preenchimento de informações da agenda faz parte da definição de uma assinatura ou da configuração de propriedades. Para definir uma agenda específica do relatório, abra o relatório ou a assinatura que usa este.

Uma agenda compartilhada contém informações de agenda e recorrência que qualquer número de relatórios publicados e assinaturas executadas em um servidor de relatório do Reporting Services pode usar. Se houver muitos relatórios e assinaturas em execução ao mesmo tempo, você pode criar uma agenda compartilhada para esses trabalhos. Se desejar alternar o padrão de recorrência ou a data de término, faça a alteração em um lugar.

As agendas compartilhadas são mais fáceis de manter e oferecem mais flexibilidade no gerenciamento de operações agendadas. Por exemplo, você pode pausar e retomar agendas compartilhadas. Muitas operações agendadas podem estar em execução ao mesmo tempo. Se eles forem executados ao mesmo tempo, você poderá criar várias agendas compartilhadas que serão executadas em horários diferentes. Em seguida, ajuste as informações de agenda até que a carga de processamento seja equilibrada no servidor de relatório.

O que você pode fazer com agendas

É possível usar o portal Web do Reporting Services e o SQL Server Management Studio no modo nativo e as páginas de administração do site do SharePoint no modo SharePoint para criar e gerenciar suas agendas. Você pode:

  • Programar a entrega de relatórios em uma assinatura padrão ou controlada por dados.

  • Programar o histórico de relatórios de modo que novos instantâneos sejam adicionados ao histórico de relatórios em intervalos regulares.

  • Agendar quando os dados de um instantâneo de relatório devem ser atualizados.

  • Agendar quando atualizar os dados de um conjunto de dados compartilhado

  • Agendar a expiração de um relatório em cache ou conjunto de dados para ocorrer em um horário predefinido de modo que possa ser atualizada.

Você pode criar uma agenda compartilhada se desejar usar as mesmas informações de agenda para vários relatórios ou assinaturas. Os agendamentos compartilhados são definidos separadamente e então referenciados em relatórios, conjuntos de dados compartilhados e assinaturas que precisam de informações de agendamento.

Quando você cria uma agenda, o relatório salva as informações da agenda no banco de dados do servidor de relatório ou para o modo do SharePoint, o banco de dados de aplicativo de serviço. O servidor de relatório também cria um trabalho do SQL Server Agent usado para disparar a agenda. O processamento da agenda baseia-se no horário local do servidor de relatório que contém a agenda. O formato de hora segue o padrão do sistema operacional Microsoft Windows.

Para obter detalhes sobre como criar e gerenciar agendas, consulte Criar, modificar e excluir agendas.

Observação

As operações de agenda não estão disponíveis em todas as edições do SQL Server. Para obter uma lista de recursos com suporte nas edições do SQL Server, confira Edições e recursos com suporte no SQL Server 2022.

Comparar agendas compartilhadas e específicas de relatórios

Os dois tipos de agendas retornam o mesmo resultado:

  • Asagendas compartilhadas são itens portáteis e polivalentes que contêm informações de agenda prontas para uso. Como as agendas compartilhadas são itens no nível do sistema, criar uma agenda compartilhada requer permissões no nível do sistema. Por isso, um administrador de servidor de relatório ou gerenciador de conteúdo normalmente cria as agendas compartilhadas que estão disponíveis no seu servidor de relatório. As agendas compartilhadas são armazenadas e administradas no servidor de relatório usando o portal da Web ou as configurações de site do SharePoint.

    Em comparação com agendas específicas que você define através de relatório, conjunto de dados compartilhado ou propriedades de assinatura, as agendas compartilhadas são mais fáceis de gerenciar e manter pelos seguintes motivos:

    • Agendas compartilhadas podem ser gerenciadas de um local central. Um local central facilita a comparação de propriedades de agenda e o ajuste de padrões de frequência e recorrência se as operações agendadas estiverem sendo executadas muito próximas ou em conflito com outros processos em seu servidor.

    • Essas opções permitem a rápida adaptação a alterações no ambiente computacional. Por exemplo, suponha que você tenha um conjunto de relatórios executado às 4h após a atualização de um warehouse. Se a operação de atualização de dados for reprogramada ou atrasada, você poderá acomodar facilmente a mudança atualizando as informações de agenda em uma única agenda compartilhada.

    • Se você usar apenas agendas compartilhadas, você saberá precisamente quando as operações programadas ocorrerão. Com esse conhecimento, é mais fácil antecipar e acomodar cargas do servidor antes que ocorram problemas de desempenho. Por exemplo, se você decidir programar backups de computador em um horário específico, você poderá ajustar agendas programadas para serem executadas em diferentes horários.

  • Asagendas específicas do relatório são definidas no contexto de um relatório individual, assinatura ou operação de execução de relatório para determinar a expiração de cache ou as atualizações de instantâneo. Essas agendas são criadas embutidas quando ao definir uma assinatura ou as propriedades de execução de relatório. É possível criar uma agenda específica de relatório se uma agenda compartilhada não fornecer o padrão de frequência ou de recorrência de que você precisa. Para impedir que um relatório seja executado, edite uma agenda específica do relatório manualmente. Usuários individuais podem criar agendas específicas de relatórios.

Configurar as fontes de dados

Para agendar o processamento de dados ou assinaturas para um relatório, configure a fonte de dados do relatório para que use credenciais armazenadas ou a conta de processamento de relatório autônoma. Se você usar credenciais armazenadas, só poderá armazenar um conjunto de credenciais e elas serão usadas por todos os usuários que executarem o relatório. As credenciais podem ser uma conta de usuário do Windows ou uma conta de usuário de banco de dados.

A conta de processamento de relatório autônoma é uma conta especial configurada no servidor de relatórios. O servidor de relatório usa a conta para conectar-se a computadores remotos quando uma operação agendada requer a recuperação de um arquivo externo ou processamento. Se você configurar a conta, poderá usá-la para conectar-se a fontes de dados externas que fornecem dados para um relatório.

Para especificar credenciais armazenadas ou a conta de processamento de relatório autônoma, edite as propriedades da fonte de dados do relatório. Se o relatório usar uma fonte de dados compartilhados, edite a fonte de dados compartilhados.

Armazenar credenciais e contas de processamento

O modo como você trabalha com uma agenda depende das tarefas que fazem parte de sua atribuição de função. Se você usar funções predefinidas, os usuários que são Gerenciadores de Conteúdo e Administradores de Sistema podem criar e gerenciar qualquer agenda. Se atribuições de função personalizadas forem utilizadas, a atribuição de função deve incluir tarefas que ofereçam suporte para as operações agendadas.

Para fazer essa tarefa Inclua esta tarefa Funções predefinidas do modo nativo Grupos do modo do SharePoint
Criar, modificar ou excluir agendas compartilhadas Gerenciar agendas compartilhadas Administrador do Sistema Proprietários
Selecionar agendas compartilhadas Exibir agendas compartilhadas Usuário do Sistema Membros
Crie, modifique ou exclua agendas específicas do relatório em uma assinatura definida pelo usuário Administrar assinaturas individuais Navegador, Construtor de Relatórios, Meus Relatórios, Gerenciador de Conteúdo Visitantes, membros
Crie, modifique ou exclua agendas específicas do relatório para todas as outras operações agendadas Gerenciar o histórico de relatório, gerenciar todas as assinaturas, gerenciar relatórios Gerenciador de Conteúdo Proprietários

Para obter mais informações sobre a segurança no Reporting Services no modo Nativo, confira Definições de função - Funções predefinidas, Conceder permissões em um servidor de relatório no modo nativo e Tarefas e Permissões. Para obter mais informações sobre o modo do SharePoint, confira Funções e tarefas do Reporting Services versus grupos e permissões do SharePoint

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 escalável, 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.

Outros componentes e serviços que funcionam com o Processador de Agendamento e Entrega tratam de aspectos de uma operação de agendamento e entrega. Mais especificamente, o Processador de Agendamento e Entrega é executado no serviço Servidor de Relatório e usa o SQL Server Agent como um temporizador para gerar eventos programados. 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 meio de um procedimento armazenado e usam 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.

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 é verificada em intervalos de 10 segundos. Você pode alterar o intervalo modificando as definições de configuração PollingInterval, IsNotificationServicee IsEventService no arquivo RSReportServer.config. O modo do SharePoint também usa o RSreporserver.config para obter estas configurações e os valores se aplicam a todos os aplicativos de serviço do Reporting Services. Para obter mais informações, consulte Arquivo de configuração RsReportServer.config.

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 Agendamento e Entrega deve ser habilitado por meio da propriedade ScheduleEventsAndReportDeliveryEnabled da faceta Configuração de Área de Superfície para o 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çã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 desativação de recursos, confira a seção Eventos e entrega agendados.

Parar o agente SQL Server

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 ocorreram 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çã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.

Parar o serviço do 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 ocorre. As solicitações continuam a se 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 na fila são processadas em ordem.