Lição 4: Comece a conversa

Aplica-se a:SQL ServerAzure SQL Managed Instance

Nesta lição, você aprende a iniciar uma conversa que abrange duas instâncias do Mecanismo de Banco de Dados e enviar uma mensagem de solicitação da instância do iniciador para a instância de destino. Execute estas etapas a partir de uma cópia do Management Studio em execução no mesmo computador que a instância do iniciador.

Procedures

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 onde você inicia a conversa.

    USE InstInitiatorDB;
    GO
    

Iniciar uma conversa e enviar uma mensagem de solicitação

Copie e cole o código a seguir em uma janela do Editor de Consultas, execute-o para iniciar uma conversa e enviar uma mensagem de solicitação para o TgtDB/2InstSample/TargetService no InstTargetDB. O código deve ser executado em um bloco porque uma variável é usada para passar um identificador de diálogo de BEGIN DIALOG para a SEND instrução.

O lote executa a BEGIN DIALOG instrução para iniciar a conversa e, em seguida, cria uma mensagem de solicitação. Em seguida, ele usa o identificador de diálogo em uma SEND instrução para enviar a mensagem de solicitação nessa conversa. A última SELECT instrução apenas exibe o texto da mensagem que foi enviada.

DECLARE @InitDlgHandle AS UNIQUEIDENTIFIER;
DECLARE @RequestMsg AS 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