Condividi tramite


Lezione 4: Eliminazione degli oggetti di conversazione

In questa lezione verranno descritte le procedure per eliminare gli oggetti che consentono a un database di supportare una conversazione utilizzando una stored procedure di attivazione interna.

Procedure

Passaggio al database AdventureWorks2008R2

  • Copiare e incollare il codice seguente in una finestra dell'editor di query, quindi eseguire il codice per cambiare contesto passando al database AdventureWorks2008R2.

    USE AdventureWorks2008R2;
    GO
    

Eliminazione degli oggetti di conversazione

  • Copiare e incollare il codice seguente in una finestra dell'editor di query. Eseguire quindi il codice per eliminare gli oggetti utilizzati per supportare la conversazione.

    IF EXISTS (SELECT * FROM sys.objects
               WHERE name =
               N'TargetActivProc')
         DROP PROCEDURE TargetActivProc;
    
    IF EXISTS (SELECT * FROM sys.services
               WHERE name =
               N'//AWDB/InternalAct/TargetService')
         DROP SERVICE
         [//AWDB/InternalAct/TargetService];
    
    IF EXISTS (SELECT * FROM sys.service_queues
               WHERE name = N'TargetQueueIntAct')
         DROP QUEUE TargetQueueIntAct;
    
    -- Drop the intitator queue and service if they already exist.
    IF EXISTS (SELECT * FROM sys.services
               WHERE name =
               N'//AWDB/InternalAct/InitiatorService')
         DROP SERVICE
         [//AWDB/InternalAct/InitiatorService];
    
    IF EXISTS (SELECT * FROM sys.service_queues
               WHERE name = N'InitiatorQueueIntAct')
         DROP QUEUE InitiatorQueueIntAct;
    
    -- Drop contract and message type if they already exist.
    IF EXISTS (SELECT * FROM sys.service_contracts
               WHERE name =
               N'//AWDB/InternalAct/SampleContract')
         DROP CONTRACT
         [//AWDB/InternalAct/SampleContract];
    
    IF EXISTS (SELECT * FROM sys.service_message_types
               WHERE name =
               N'//AWDB/InternalAct/RequestMessage')
         DROP MESSAGE TYPE
         [//AWDB/InternalAct/RequestMessage];
    
    IF EXISTS (SELECT * FROM sys.service_message_types
               WHERE name =
               N'//AWDB/InternalAct/ReplyMessage')
         DROP MESSAGE TYPE
         [//AWDB/InternalAct/ReplyMessage];
    

Passaggi successivi

In questo modo si conclude l'esercitazione. Le esercitazioni forniscono brevi introduzioni e non illustrano tutte le opzioni disponibili. Le esercitazioni utilizzano logica e gestione degli errori semplificate e non devono essere utilizzate in un ambiente di produzione. Per creare conversazioni efficaci, affidabili ed efficienti, è necessario utilizzare codice più complesso rispetto a quello utilizzato nell'esempio dell'esercitazione.

Come tornare alle esercitazioni di Service Broker

Esercitazioni di Service Broker