Exemplo de replicação de mesclagem dos pedidos Readme_Sales

Esse exemplo funciona apenas com o SQL Server 2005 e o SQL Server 2008. Ele não funcionará com nenhuma versão do SQL Server anterior ao SQL Server 2005.

Este arquivo leiame fornece detalhes sobre como instalar e executar o exemplo Pedidos de Vendas. Esse arquivo também fornece informações sobre problemas conhecidos que ocorrem com o exemplo.

Cenário

Este exemplo destaca uma topologia de replicação de mesclagem para entregar dados a usuários móveis e também demonstra os recursos de programabilidade de replicação de mesclagem do SQL Server. O exemplo é um aplicativo com base no Windows Forms que usa as tecnologias padrão de acesso aos dados da Microsoft e a replicação de mesclagem para habilitar um vendedor a manter seus próprios dados locais ao fazer a sincronização periodicamente com o escritório principal. Esse exemplo é suportado por Assinantes que executam todas as edições do SQL Server. A publicação também dá suporte a Assinantes do SQL Server Compact 3.5 SP1. Para obter mais informações sobre este cenário de exemplo, consulte Cenário de exemplo Pedidos de Vendas.

Linguagens

  • C#
  • Transact-SQL

Recursos

O exemplo Pedidos de Vendas demonstra os seguintes recursos de replicação de mesclagem:

  • RMO (Replication Management Objects).
  • Filtros de linha com parâmetros.
  • Partições pré-computadas.
  • Instantâneo particionado solicitado pelo cliente.
  • Otimizações de desempenho com base em tipo de artigo.
  • Assinantes do SQL Server Compact 3.5 SP1 e do SQL Server Express.
  • Gerenciamento de intervalo de identidade automático.
  • Manipuladores de lógica de negócios.
  • Sincronização da Web (opcional).

Para obter mais informações sobre como estes recursos de replicação são demonstrados no exemplo, consulte Detalhes de implementação de exemplos Pedidos Vendas.

Pré-requisitos

Antes de executar este exemplo, verifique se o seguinte software está instalado:

  • SQL Server 2005 ou versão posterior, inclusive os seguintes componentes opcionalmente instalados:
    • Serviços do Mecanismo de Banco de Dados do SQL Server (incluindo replicação)
    • Ferramentas de cliente
    • Banco de dados OLTP de exemplo AdventureWorks. Esse banco de dados de exemplo está disponível na página Exemplos e projetos da comunidade do Microsoft SQL Server do CodePlex.
    • Os exemplos do SQL Server. Esses exemplos estão disponíveis na página Exemplos e projetos da comunidade do Microsoft SQL Server do CodePlex. Para obter mais informações, consulte Considerações para instalar exemplos e bancos de dados de exemplo do SQL Server.
  • .NET Framework SDK 2.0 ou Microsoft Visual Studio 2005. O .NET Framework SDK está disponível gratuitamente. Para obter mais informações, consulte Instalando a documentação do .NET Framework.

Permissões necessárias

As permissões necessárias para configurar e executar o exemplo de Pedidos de Vendas se baseiam nos requisitos de segurança de replicação e são as seguintes:

  • Para executar o InstallSalesOrdersSample.bat, que configura a replicação, cria a publicação AdvWorksSalesOrders e gera o instantâneo inicial, sua conta do Windows deve ser um membro da função de servidor fixo sysadmin no Publicador.

  • O exemplo Pedidos de Vendas executa várias tarefas do Mecanismo de Banco de Dados e de replicação, incluindo a criação do banco de dados AdventureWorksLocal, a criação da assinatura local e a execução do Merge Agent para inicializar, reinicializar ou sincronizar a assinatura. Para executar com êxito o executável do exemplo (SalesOrders.exe) no Assinante, sua conta do Windows deve ter pelo menos as permissões CREATE DATABASE no Assinante.

    Dica

    Quando o banco de dados local e a assinatura existirem, sua conta do Windows deve ser pelo menos um membro da função de banco de dados fixa db_owner no banco de dados AdventureWorksLocal no Assinante para executar o aplicativo.

  • Para inicializar a assinatura e fazer a sincronização com o Publicador, a conta do Windows usada para conectar-se ao Publicador (ou ao servidor da Web durante a sincronização da Web) deve cumprir os seguintes requisitos:

    • Ter um logon válido no Publicador associado a um usuário no banco de dados de publicação.
    • Ter um logon válido no Distribuidor associado a um usuário no banco de dados de distribuição (do usuário convidado).
    • Ser um membro da lista de acesso à publicação (PAL) para a publicação AdvWorksSalesOrders.

Criando e configurando o exemplo

Para criar o projeto de exemplo e configurar a topologia de replicação, você precisará fazer o seguinte:

  • No Publicador, execute o script de instalação de replicação.
  • (Opcional) Configure o servidor de Serviços de Informações da Internet (IIS) para dar suporte à sincronização da Web para replicação de mesclagem. Se isto não for feito, você não poderá usar o recurso de sincronização da Web do exemplo.
  • No Assinante, modifique os parâmetros de configuração no arquivo app.config do exemplo.
  • No Assinante, crie o exemplo usando o SDK Visual Studio 2005 ou .NET Framework 2.0.
  • No Assinante, coloque uma cópia do assembly BusinessLogic.dll no diretório C:\Arquivos de Programas\Microsoft SQL Server\100\COM. Ao usar a sincronização da Web, também é necessário colocar uma cópia do BusinessLogic.dll no diretório C:\Arquivos de Programas\Microsoft SQL Server\100\COM no servidor da Web.

Para configurar o exemplo Pedidos de Vendas no Publicador

  1. Verifique se o banco de dados de exemplo AdventureWorks foi instalado e se o banco de dados está conectado. Para obter mais informações, consulte Considerações para instalar exemplos e bancos de dados de exemplo do SQL Server.

  2. Verifique se os exemplos do Mecanismo de Banco de Dados do SQL Server foram instalados. Para obter mais informações, consulte Considerações para instalar exemplos e bancos de dados de exemplo do SQL Server.

  3. Verifique se o SQL Server Agent está em execução. Você pode visualizar o status e iniciar esse serviço a partir do Pesquisador de Objetos no SQL Server Management Studio.

  4. Navegue até o local de instalação dos scripts do exemplo Pedido de Vendas. O padrão é C:\Arquivos de Programas\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\Scripts.

  5. (Opcional) Configure o Protocolo SSL no Publicador ou no servidor usado para sincronização da Web. O SSL é necessário para a comunicação entre o servidor IIS e todos os Assinantes. Para configurar o SSL, especifique um certificado de servidor a ser usado pelo servidor IIS.

  6. Execute o InstallSalesOrdersSample.bat e, quando solicitado, insira o login (no formato “DOMAIN\login” que diferencia maiúsculas e minúsculas) e a senha da conta do Windows a partir da qual o trabalho do Snapshot Agent será executado. Isso chama o sqlcmd.exe para executar o CreateAdvWorksSalesOrdersPublication.sql, que faz o seguinte:

    • Verifica se a replicação foi configurada no servidor local e, em caso negativo, configura a replicação como um Publicador com Distribuidor local usando o banco de dados de distribuição.
    • Descarta e recria os procedimentos armazenados e as funções definidas pelo usuário usados para acessar os dados no cliente.
    • Descarta e recria a Publicação AdvWorksSalesOrders.
    • Adiciona artigos à publicação.
    • Registra o manipulador de lógica de negócios no Distribuidor.
    • Inicia o trabalho do Snapshot Agent para gerar o instantâneo inicial.

    O arquivo em lotes também pode configurar automaticamente um diretório virtual no Publicador para dar suporte à sincronização da Web. Se você optar por não configurar o diretório virtual no Publicador durante a instalação ou se desejar usar um servidor da Web separado, execute o Assistente para Configuração da Sincronização da Web antes de usar os recursos de sincronização da Web do exemplo.

  7. (Opcional) Execute o Assistente para Configuração da Sincronização da Web para configurar um servidor IIS para dar suporte à sincronização da Web. Ignore essa etapa se o InstallSalesOrdersSample.bat tiver criado com êxito o diretório virtual ou se você não for usar a sincronização da Web. Para obter todas as instruções sobre como usar esse assistente, consulte How to: Configure an IIS Server for Web Synchronization (SQL Server Management Studio).

  8. Antes de continuar, verifique se o trabalho do Snapshot Agent para a publicação AdvWorksSalesOrders foi concluído com êxito. O status desse trabalho pode ser visualizado com o Replication Monitor. Para obter informações sobre como usar o Replication Monitor para visualizar o status de um trabalho do Snapshot Agent, consulte o tópico How to: View Information and Perform Tasks for the Agents Associated With a Publication (Replication Monitor) nos Manuais Online do SQL Server.

Para criar e configurar o exemplo Pedidos de Vendas no Assinante

  1. No prompt de comando, navegue até o diretório de instalação de exemplos do SQL Server. O padrão é C:\Arquivos de Programas\Microsoft SQL Server\100\Samples\.

  2. Execute o seguinte em um prompt de comando .NET Framework ou Microsoft Visual Studio 2005:

    sn -k SampleKey.snk

    Dica

    Você poderá ignorar esta etapa se a chave tiver sido criada anteriormente para ser usada com outro exemplo.

  3. Navegue até o local de instalação para obter a solução do exemplo Pedidos de Vendas no Microsoft Visual C#. O padrão é C:\Arquivos de Programas\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\CS.

  4. Abra o arquivo de solução SalesOrders.sln em Visual Studio 2005.

  5. Crie o projeto.

  6. Na pasta de saída do projeto, edite o arquivo SalesOrders.exe.config e altere o seguinte:

    • Substitua o valor da chave do Assinante pelo nome do servidor local.
    • Substitua o valor da chave do Publicador pelo nome do servidor configurado anteriormente como o Publicador.
    • (Opcional) Substitua o valor da chave WebSynchronizationUrl ao se conectar ao Publicador por meio da sincronização da Web. Isso também pode ser feito em tempo de execução.
    • (Opcional) Use a chave SyncWhenConnectedInterval para definir o intervalo entre sincronizações, em segundos, ao usar a funcionalidade Sincronizar quando conectado.

    Dica

    A replicação não dá suporte ao host local para nomes de servidor.

  7. Coloque uma cópia do assembly BusinessLogic.dll no diretório C:\Arquivos de Programas\Microsoft SQL Server\100\COM.

  8. (Opcional) Se estiver usando a sincronização da Web, coloque uma cópia do assembly BusinessLogic.dll no diretório C:\Arquivos de Programas\Microsoft SQL Server\100\COM no servidor da Web.

Executando o exemplo

Para executar o exemplo Pedidos de Vendas e sincronizar dados

  1. Verifique se as conexões remotas estão habilitadas no Publicador e no Assinante (TCP/IP ou Pipes Nomeados) e se o serviço do SQL Server Agent está em execução.

  2. (Opcional) No Assinante, teste a conexão da sincronização da Web conectando-se ao servidor da Web no modo de diagnóstico, conforme as instruções disponíveis na seção “Para configurar certificados de cliente no Assinante” em How to: Configure Web Synchronization for Merge Replication (Replication Transact-SQL Programming).

    Dica

    Se ocorrer um erro HTTP enquanto você estiver usando a sincronização da Web, abra o Internet Explorer e, no menu Ferramentas, selecione Opções da Internet, Conexões e Configurações de LAN. Verifique se Detectar automaticamente as configurações está desabilitado.

  3. Inicie o SalesOrders.exe a partir de Visual Studio 2005 ou no prompt de comando. Quando o aplicativo é executado pela primeira vez, o banco de dados de assinatura e a assinatura são criados e o Merge Agent é iniciado para inicializar a assinatura.

  4. Depois que os dados de assinatura forem inicializados, o formulário Pedidos de Vendas será carregado, exibindo uma lista de pedidos existentes que pertencem ao vendedor “adventure-works\garrett1”.

  5. Usando o formulário Pedidos de Vendas, você pode fazer as seguintes alterações nos dados de vendas:

    • Editar informações sobre pedidos de vendas.
    • Adicionar um novo item ao pedido de vendas.
    • Excluir um item de um pedido de vendas.
    • Alterar a quantidade solicitada de um item em um pedido de vendas.
  6. Selecione um método de sincronização no menu Sincronizar para sincronizar a assinatura.

  7. (Opcional) Marque Sincronizar Quando Conectado para sincronizar a assinatura automaticamente. Defina o intervalo de sincronização para sincronização em segundo plano usando a chave SyncWhenConnectedInterval no arquivo app.config.

    Dica

    O recurso Sincronizar Quando Conectado não está disponível durante a execução em plataformas Microsoft Windows 2000. Para obter mais informações, consulte Detalhes de implementação de exemplos Pedidos Vendas.

Para usar opções de sincronização avançadas do exemplo Pedidos de Vendas

  1. Em Avançado no menu Sincronizar, escolha um das opções a seguir:

    • (Opcional) Selecione uma opção de reinicialização para reiniciar a assinatura.

    • (Opcional) Selecione Opções de Sincronização da Web e forneça o URL e as credenciais de Autenticação do Windows usadas para acessar o servidor da Web em uma conexão HTTPS segura. Para usar essa opção, você já deve ter configurado um servidor IIS para sincronização da Web.

      Dica

      A sincronização somente de carregamento ou somente de download não é compatível com a sincronização da Web. Quando a sincronização da Web estiver habilitada, o item de menu Carregar Dados Somente será desabilitado.

    • (Opcional) Selecione Obter Status da Assinatura para exibir os resultados das sessões mais recentes do Merge Agent.

Removendo o exemplo

Siga este procedimento para remover o exemplo Pedidos de Vendas.

Para excluir somente a assinatura

  1. No Assinante, execute o seguinte script Transact-SQL para excluir a assinatura pull.

  2. No Publicador, execute o seguinte script Transact-SQL para cancelar o registro da assinatura pull.

Para remover o exemplo Pedidos de Vendas

  1. No Publicador, navegue até o local de instalação dos scripts do exemplo Pedido de Vendas. O padrão é C:\Arquivos de Programas\Microsoft SQL Server\100\Samples\Replication\Merge\SalesOrders\Scripts.

  2. Execute o arquivo em lotes RemoveSalesOrdersSample.bat.

  3. Quando solicitado, digite "Y" e pressione Enter para remover todos os objetos de replicação no Publicador, remover todos os objetos de replicação no banco de dados de assinatura e desinstalar a publicação e a distribuição no Publicador.

    Importante

    Ao usar este script, toda a infra-estrutura de replicação será removida. Se você tiver criado outras publicações que usam este Publicador ou Distribuidor, não execute DropAdvWorksSalesOrdersPublication.sql. Nesse caso, remova a publicação de AdvWorksSalesOrders manualmente. Para obter mais informações, consulte How to: Delete a Publication (SQL Server Management Studio) ou Como excluir uma publicação (Programação Transact-SQL de replicação) nos Manuais Online do SQL Server.

  4. No Assinante, no banco de dados AdventureWorksLocal, execute sp_removedbreplication (Transact-SQL).

  5. Altere o contexto de banco de dados para o banco de dados mestre e execute DROP DATABASE AdventureWorksLocal.

Comentários

Os exemplos são fornecidos somente para fins educativos. Eles não devem ser usados em um ambiente de produção nem foram testados nesse tipo de ambiente. A Microsoft não fornece suporte técnico para esses exemplos. Aplicativos de exemplo e assemblies não devem ser conectados ao banco de dados de produção do SQL Server nem devem ser utilizados com esse banco de dados ou com o servidor de relatório sem a permissão do administrador do sistema.

Consulte também

Conceitos

Exemplos (Replicação)

Outros recursos

Conceitos de programação de replicação
Centro de Informações do Desenvolvedor (Replicação)

Ajuda e informações

Obtendo assistência do SQL Server 2008