Compartilhar via


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

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

Procedimentos

Habilitar o Service Broker e alternar para o banco de dados AdventureWorks2008R2

  • 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 AdventureWorks2008R2 e que o contexto seja alternado para o banco de dados.

    USE master;
    GO
    ALTER DATABASE AdventureWorks2008R2
          SET ENABLE_BROKER;
    GO
    USE AdventureWorks2008R2;
    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. 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. 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/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 contrato especifica que as conversas 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 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 TargetQueueIntAct. Portanto, todas as mensagens enviadas ao serviço serão recebidas no TargetQueueIntAct. CREATE SERVICE especifica também que apenas as conversas 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 AdventureWorks2008R2 para oferecer suporte a uma conversa 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.