Condividi tramite


Lezione 4: Iniziare la conversazione

Si applica a: SQL Server Istanza gestita di SQL di Azure

In questa lezione verranno descritte le procedure per avviare una conversazione tra due istanze di Motore di database e per inviare un messaggio di richiesta dall'istanza dell'initiator all'istanza di destinazione. Eseguire questi passaggi da una copia di Management Studio in esecuzione nello stesso computer come istanza dell'initiator.

Procedure

Passare al database InitiatorDB

  • Copiare il seguente codice e incollarlo nella finestra dell'Editor di query. Eseguire quindi il codice per cambiare contesto passando al database InstInitiatorDB in cui si avvierà la conversazione.

        USE InstInitiatorDB;
        GO
    

Avviare una conversazione e inviare un messaggio di richiesta

  • Copiare il seguente codice e incollarlo nella finestra dell'Editor di query. Eseguire quindi il codice per avviare una conversazione e inviare un messaggio di richiesta a //TgtDB/2InstSample/TargetService in InstTargetDB. Il codice deve essere eseguito in un blocco, perché viene usata una variabile per cambiare l'handle di dialogo dall'istruzione BEGIN DIALOG a SEND. Il batch esegue l'istruzione BEGIN DIALOG per avviare la conversazione e quindi crea un messaggio di richiesta. Usa quindi l'handle di dialogo in un'istruzione SEND per inviare il messaggio di richiesta nella conversazione. L'ultima istruzione SELECT mostra soltanto il testo del messaggio inviato.

        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
    

Passaggi successivi

È stata avviata una conversazione e inviato il messaggio di richiesta al servizio di destinazione. Quindi, si riceverà il messaggio di richiesta dalla coda di destinazione e si invierà un messaggio di risposta al servizio dell'iniziatore. Per altre informazioni, vedere Lezione 5: Ricezione di una richiesta e invio di una risposta.

Vedi anche