Lezione 1: Creazione degli oggetti di conversazione
Data creazione: 15 settembre 2007
In questa lezione verranno descritte le procedure per creare tutti gli oggetti per il supporto di una conversazione nel database.
Procedure
Abilitare Service Broker e passare al database AdventureWorks
Copiare e incollare il codice seguente in una finestra dell'editor di query, quindi eseguirlo per assicurare l'attivazione di Service Broker nel database
AdventureWorks
e cambiare il contesto del database.USE master; GO ALTER DATABASE AdventureWorks SET ENABLE_BROKER; GO USE AdventureWorks; GO
Creare i tipi di messaggio
Copiare e incollare il codice seguente in una finestra dell'editor di query, quindi eseguirlo per creare i tipi di messaggi per la conversazione. Poiché i riferimenti ad oggetti di Service Broker sono spesso presenti in più istanze di Motore di database, la maggior parte degli oggetti diService Broker sono denominati in formato URI in modo da risultare univoci in più computer. Entrambi questi tipi di messaggio specificano che Service Broker verifica solo che i messaggi siano documenti XML corretti, ma non li verifica rispetto a un schema specifico.
CREATE MESSAGE TYPE [//AWDB/1DBSample/RequestMessage] VALIDATION = WELL_FORMED_XML; CREATE MESSAGE TYPE [//AWDB/1DBSample/ReplyMessage] VALIDATION = WELL_FORMED_XML; GO
Creare il contratto
Copiare e incollare il codice seguente in una finestra dell'editor di query, quindi eseguirlo per creare il contratto relativo alla conversazione. Il contratto specifica che le conversazioni in cui viene utilizzato devono inviare messaggi di tipo //AWDB/1DBSample/RequestMessage dall'initiator alla destinazione e messaggi di tipo //AWDB/1DBSample/ReplyMessage dalla destinazione all'initiator.
CREATE CONTRACT [//AWDB/1DBSample/SampleContract] ([//AWDB/1DBSample/RequestMessage] SENT BY INITIATOR, [//AWDB/1DBSample/ReplyMessage] SENT BY TARGET ); GO
Creare la coda e il servizio di destinazione
Copiare e incollare il codice seguente in una finestra dell'editor di query, quindi eseguirlo per creare la coda e il servizio utilizzato per la destinazione. Poiché i riferimenti a code dello stesso database sono analoghi ai riferimenti di tabelle e viste, il formato dei nomi delle code è uguale a quello dei nomi delle tabelle o viste. L'istruzione CREATE SERVICE associa il servizio alla coda TargetQueue2DB, pertanto tutti i messaggi inviati al servizio saranno ricevuti nella coda TargetQueue2DB. L'istruzione CREATE SERVICE specifica inoltre che solo le conversazioni che utilizzano il contratto //AWDB/1DBSample/SampleContract creato in precedenza possono utilizzare il servizio come servizio di destinazione.
CREATE QUEUE TargetQueue1DB; CREATE SERVICE [//AWDB/1DBSample/TargetService] ON QUEUE TargetQueue1DB ([//AWDB/1DBSample/SampleContract]); GO
Creare la coda e il servizio initiator
Copiare e incollare il codice seguente in una finestra dell'editor di query, quindi eseguirlo per creare la coda e il servizio utilizzato per l'initiator. Poiché non è specificato un nome di contratto,questo servizio non può essere utilizzato come servizio di destinazione da altri servizi.
CREATE QUEUE InitiatorQueue1DB; CREATE SERVICE [//AWDB/1DBSample/InitiatorService] ON QUEUE InitiatorQueue1DB; GO
Passaggi successivi
È stato configurato il supporto di una conversazione tra i servizi //AWDB/1DBSample/InitiatorService e //AWDB/1DBSample/TargetService di AdventureWorks. Nel passaggio successivo verrà completata una conversazione mediante la configurazione. Vedere Lezione 2: Avvio di una conversazione e trasmissione di messaggi.
Vedere anche
Altre risorse
ALTER DATABASE (Transact-SQL)
CREATE MESSAGE TYPE (Transact-SQL)
CREATE CONTRACT (Transact-SQL)
CREATE QUEUE (Transact-SQL)
CREATE SERVICE (Transact-SQL)
Architettura delle conversazioni
Architettura dei servizi