Condividi tramite


Esempio di script del servizio

In questo esempio di codice Transact-SQL viene definito un servizio per l'archiviazione di documenti XML non tipizzati. Nell'esempio sono inclusi due script, lo script del contratto e lo script di definizione del servizio. Lo script del contratto definisce i tipi di messaggi e il contratto per il servizio. La definizione dei tipi di messaggi e quella del contratto devono corrispondere per entrambi i servizi di origine e di destinazione. Di conseguenza le definizioni vengono incluse in uno script di definizione del servizio separato che può essere distribuito ai database che ospitano il servizio di origine. Lo script di definizione del servizio specifica invece il servizio stesso. Questo script deve essere eseguito solo in un database che implementa il servizio di destinazione.

Nota

Lo script di definizione del servizio specifica il servizio di destinazione, ma non include un'implementazione del servizio stesso.

Script del contratto

-- The contract script contains definitions that must be
-- present for both the intiating service and the target
-- service.

USE AdventureWorks2008R2;
GO

-- Create messages for each broker-to-broker
-- communication needed to complete the task.

-- Message for the initiator to send XML
-- to be archived.

CREATE MESSAGE TYPE
    [//Adventure-Works.com/messages/ArchiveXML]
    VALIDATION = WELL_FORMED_XML ;
GO

-- Message to return event archiving information.

CREATE MESSAGE TYPE
    [//Adventure-Works.com/messages/AcknowledgeArchiveXML]
    VALIDATION = WELL_FORMED_XML ;
GO

-- Create a service contract to structure
-- an event archiving conversation, using 
-- the message types defined above.

CREATE CONTRACT 
    [//Adventure-Works.com/contracts/ArchiveXML/v1.0]
    (
        [//Adventure-Works.com/messages/ArchiveXML]
        SENT BY INITIATOR,
        [//Adventure-Works.com/messages/AcknowledgeArchiveXML]
        SENT BY TARGET
     ) ;
GO

Script di definizione del servizio

-- This script defines the target service. The
-- objects created by this script are only
-- required in a database that hosts the target
-- service.

USE AdventureWorks2008R2 ;
GO

-- Create the service queue that will receive 
-- messages for conversations that implement
-- the ArchiveXML contract.

CREATE QUEUE ArchiveQueue ;
GO

-- Create the service object that exposes the 
-- ArchiveEvents service contract and maps 
-- it to the ArchiveQueue service queue.

CREATE SERVICE [//Adventure-Works.com/ArchiveService]
    ON QUEUE ArchiveQueue
    ([//Adventure-Works.com/contracts/ArchiveXML/v1.0]) ;
GO