Share via


Exemple de script de service

Cet exemple de code Transact-SQL définit un service qui archive des documents XML non typés. Deux scripts sont inclus : le script de contrat et le script de définition de service. Le script de contrat définit les types de messages et le contrat du service. La définition des types de messages et la définition du contrat doivent correspondre pour le service initiateur et le service cible. Par conséquent, les définitions sont incluses dans un script de définition de service indépendant qui peut être distribué aux bases de données hébergeant le service initiateur. Le script de définition de service définit le service proprement dit. Ce script doit être exécuté uniquement dans une base de données qui implémente le service cible.

Notes

Le script de définition de service définit le service cible, mais il n'inclut pas d'implémentation du service.

Script de contrat

-- 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 définition de service

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

Voir aussi

Concepts