Partilhar via


Lição 4: Começando a conversação

Nesta lição, você aprenderá a iniciar uma conversação que se expande por duas instâncias do Mecanismo de Banco de Dados e que envia uma mensagem de solicitação da instância de iniciador para a instância de destino. Execute estas etapas de uma cópia do Management Studio executada no mesmo computador da instância de iniciador.

Procedimentos

Alternar para o banco de dados InitiatorDB

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para alternar o contexto para o banco de dados InstInitiatorDB no qual a conversação será iniciada.

    USE InstInitiatorDB;
    GO
    

Inicie uma conversação e envie uma mensagem de solicitação

  • Copie e cole o código a seguir em uma janela do Editor de Consultas. Em seguida, execute-o para começar uma conversação e enviar uma mensagem de solicitação para o //TgtDB/2InstSample/TargetService no InstTargetDB. O código precisará ser executado em bloco único porque há uma variável que é usada para passar um identificador de caixa de diálogo da instrução BEGIN DIALOG para a instrução SEND. O lote executa a instrução BEGIN DIALOG para começar a conversação e depois cria uma mensagem de solicitação. Em seguida, ele usa o identificador de caixa de diálogo em uma instrução SEND para enviar uma mensagem de solicitação nessa conversação. A última instrução SELECT exibe apenas o texto da mensagem enviada.

    DECLARE @InitDlgHandle UNIQUEIDENTIFIER;
    DECLARE @RequestMsg NVARCHAR(100);
    
    BEGIN TRANSACTION;
    
    BEGIN DIALOG @InitDlgHandle
         FROM SERVICE [//InstDB/2InstSample/InitiatorService]
         TO SERVICE N'//TgtDB/2InstSample/TargetService'
         ON CONTRACT [//BothDB/2InstSample/SimpleContract]
         WITH
             ENCRYPTION = ON;
    
    SELECT @RequestMsg = N'<RequestMsg>Message for Target service.</RequestMsg>';
    
    SEND ON CONVERSATION @InitDlgHandle
         MESSAGE TYPE [//BothDB/2InstSample/RequestMessage]
         (@RequestMsg);
    
    SELECT @RequestMsg AS SentRequestMsg;
    
    COMMIT TRANSACTION;
    GO
    

Próximas etapas

Você iniciou com êxito uma conversação e enviou uma mensagem de solicitação para o serviço de destino. A seguir, você receberá a mensagem de solicitação na fila de destino e enviará uma mensagem de resposta para o serviço de iniciador. Consulte Lição 5: Recebendo uma solicitação e enviando uma resposta.