Share via


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

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

Habilite o Service Broker e alterne 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 maioria dos objetos do Service Broker recebem nomes no formato de URI. Isso ajuda a garantir que eles sejam únicos em vários computadores. Os dois 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/InternalAct/RequestMessage]
           VALIDATION = WELL_FORMED_XML;
    CREATE MESSAGE TYPE
           [//AWDB/InternalAct/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 devem enviar mensagens do tipo //AWDB/InternalAct/RequestMessage do iniciador ao destino, e mensagens do tipo //AWDB/InternalAct/ReplyMessage do destino ao iniciador.

    CREATE CONTRACT [//AWDB/InternalAct/SampleContract]
          ([//AWDB/InternalAct/RequestMessage]
           SENT BY INITIATOR,
           [//AWDB/InternalAct/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 o 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 ou exibição. A instrução CREATE SERVICE associa o serviço a TargetQueueIntAct. Portanto, todas as mensagens enviadas ao serviço serão recebidas no TargetQueueIntAct. CREATE SERVICE especifica também que apenas as conversações que usam //AWDB/InternalAct/SampleContract criado anteriormente podem usar o serviço como serviço de destino.

    CREATE QUEUE TargetQueueIntAct;
    
    CREATE SERVICE
           [//AWDB/InternalAct/TargetService]
           ON QUEUE TargetQueueIntAct
              ([//AWDB/InternalAct/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 InitiatorQueueIntAct;
    
    CREATE SERVICE
           [//AWDB/InternalAct/InitiatorService]
           ON QUEUE InitiatorQueueIntAct;
    GO
    

Próximas etapas

Você configurou com êxito o AdventureWorks para oferecer suporte a uma conversação entre o //AWDB/InternalAct/InitiatorService e o //AWDB/InternalAct/TargetService. Logo, você criará um procedimento armazenado para dar suporte à ativação interna na fila de destino. Consulte Lição 2: Criando um procedimento de ativação interna.