Condividi tramite


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

  1. 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

  1. 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

  1. 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

  1. 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

  1. 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

Guida in linea e informazioni

Assistenza su SQL Server 2005