Lezione 4: Avvio della conversazione
Data creazione: 15 settembre 2007
In questa lezione verranno illustrate le procedure per avviare una conversazione tra due istanze di Motore di database e inviare un messaggio di richiesta dall'istanza di origine a quella di destinazione. Eseguire questi passaggi da una copia di Management Studio in esecuzione nello stesso computer dell'istanza initiator.
Procedure
Passare al database InitiatorDB
Copiare e incollare il codice seguente in una finestra dell'editor di query, quindi eseguirlo per cambiare contesto passando al database InstInitiatorDB in cui sarà inizializzata la conversazione.
USE InstInitiatorDB; GO
Avviare una conversazione e inviare un messaggio di richiesta
Copiare e incollare il codice seguente in una finestra dell'editor di query, quindi eseguirlo per avviare una conversazione e inviare un messaggio di richiesta al servizio //TgtDB/2InstSample/TargetService nel database InstTargetDB. È necessario eseguire il codice in un unico blocco perché viene utilizzata una variabile per passare un handle di dialogo dall'istruzione BEGIN DIALOG all'istruzione SEND. L'istruzione BEGIN DIALOG del batch viene eseguita per avviare la conversazione e creare un messaggio di richiesta. Il messaggio di richiesta viene quindi inviato tramite l'handle di dialogo in un'istruzione SEND nella conversazione in esecuzione. L'ultima istruzione SELECT visualizza 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. Nel passaggio successivo il messaggio di richiesta verrà ricevuto dalla coda di destinazione e un messaggio di risposta sarà inviato al servizio initiator. Vedere Lezione 5: Ricezione di una richiesta e invio di una risposta.
Vedere anche
Altre risorse
BEGIN DIALOG CONVERSATION (Transact-SQL)
SEND (Transact-SQL)
Service Broker Programming Basics