Ejemplo de script de servicio

Este ejemplo de código Transact-SQL define un servicio que almacena los documentos XML sin tipo. Se incluyen dos scripts: el script del contrato y el script de la definición de servicio. El script del contrato define los tipos de mensaje y el contrato para el servicio. La definición del tipo de mensaje y la definición del contrato deben coincidir para el servicio iniciador y el servicio de destino. Por consiguiente, las definiciones están incluidas en un script de definición de servicio independiente que se puede distribuir para las bases de datos que hospedan el servicio iniciador. El script de la definición de servicio define el propio servicio. Este script solamente se debe ejecutar en una base de datos que implementa el servicio de destino.

Nota

El script de la definición del servicio define el servicio de destino, pero no incluye ninguna implementación del servicio.

Script del contrato

-- 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 de la definición del servicio

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