Compartilhar via


Lição 1: Criando os objetos de conversação

Nesta lição você aprenderá a criar todos os objetos que capacitam um banco de dados a oferecer suporte à conversação do banco de dados.

Procedimentos

Ativar o Agente de Serviços e alternar para o banco de dados AdventureWorks

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para assegurar que o Service Broker seja habilitado no banco de dados AdventureWorks e que o contexto seja alternado para o banco de dados.

    USE master;
    GO
    ALTER DATABASE AdventureWorks
          SET ENABLE_BROKER;
    GO
    USE AdventureWorks;
    GO
    

Criar os tipos de mensagens

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para criar os tipos de mensagem para a conversação. Como os objetos do Service Broker, em geral, são referenciados em várias instâncias do Mecanismo de Banco de Dados, a maior parte dos objetos do Service Broker recebem nomes no formato URI. Isso ajuda a garantir que eles sejam únicos em vários computadores. Ambos esses tipos de mensagens especificam que o Service Broker só validará que as mensagens sejam documentos XML bem formados e que não validará XML de determinado esquema.

    CREATE MESSAGE TYPE
           [//AWDB/1DBSample/RequestMessage]
           VALIDATION = WELL_FORMED_XML;
    CREATE MESSAGE TYPE
           [//AWDB/1DBSample/ReplyMessage]
           VALIDATION = WELL_FORMED_XML;
    GO
    

Criar o contrato

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para criar o contrato para a conversação. O contrato especifica que as conversações que o utilizam precisam enviar mensagens do tipo //AWDB/1DBSample/RequestMessage do iniciador para o destino, e mensagens do tipo //AWDB/1DBSample/ReplyMessage do destino para o iniciador.

    CREATE CONTRACT [//AWDB/1DBSample/SampleContract]
          ([//AWDB/1DBSample/RequestMessage]
           SENT BY INITIATOR,
           [//AWDB/1DBSample/ReplyMessage]
           SENT BY TARGET
          );
    GO
    

Criar a fila de destino e o serviço

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para criar a fila e serviço a serem usados para o destino. Como as filas são referenciadas do mesmo banco de dados de forma semelhante a tabelas e exibições, os nomes de filas são formatados como nomes de tabela e exibição. A instrução CREATE SERVICE associa o serviço a TargetQueue1DB. Por isso, todas as mensagens que são enviadas ao serviço serão recebidas no TargetQueue1DB. CREATE SERVICE especifica também que apenas as conversações que usam //AWDB/1DBSample/SampleContract criado anteriormente podem usar o serviço como serviço de destino.

    CREATE QUEUE TargetQueue1DB;
    
    CREATE SERVICE
           [//AWDB/1DBSample/TargetService]
           ON QUEUE TargetQueue1DB
           ([//AWDB/1DBSample/SampleContract]);
    GO
    

Criar a fila e o serviço do iniciador

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para criar a fila e o serviço a serem usados para o iniciador. Como nenhum nome de contrato é especificado, nenhum outro serviço pode usar esse serviço como serviço de destino.

    CREATE QUEUE InitiatorQueue1DB;
    
    CREATE SERVICE
           [//AWDB/1DBSample/InitiatorService]
           ON QUEUE InitiatorQueue1DB;
    GO
    

Próximas etapas

Você configurou com êxito o AdventureWorks para oferecer suporte a uma conversação entre o //AWDB/1DBSample/InitiatorService e o //AWDB/1DBSample/TargetService. A seguir uma conversação será concluída usando essa configuração. Consulte Lição 2: Começando uma conversação e transmitindo mensagens.