Compartir a través de


Lección 1: Crear los objetos de conversación

En esta lección, obtendrá información sobre cómo generar todos los objetos que permiten a una base de datos admitir una conversación en ella.

Procedimientos

Habilitar Service Broker y cambiar a la base de datos AdventureWorks2008R2

  • Copie y pegue el código siguiente en una ventana del Editor de consultas. A continuación, ejecútelo para asegurarse de que Service Broker está habilitado en la base de datos AdventureWorks2008R2, y cambiar el contexto a la base de datos.

    USE master;
    GO
    ALTER DATABASE AdventureWorks2008R2
          SET ENABLE_BROKER;
    GO
    USE AdventureWorks2008R2;
    GO
    

Crear los tipos de mensaje

  • Copie y pegue el código siguiente en una ventana del Editor de consultas. Después, ejecútelo para crear los tipos de mensaje para la conversación. Dado que a menudo se hace referencia a los objetos de Service Broker a través de varias instancias de Motor de base de datos, a la mayor parte de los objetos de Service Broker se les asigna nombres con formato URI. Esto ayuda a garantizar que son únicos en varios equipos. Ambos tipos de mensaje especifican que Service Broker solamente validará que los mensajes son documentos XML correctos, y no el código XML con un esquema concreto.

    CREATE MESSAGE TYPE
           [//AWDB/1DBSample/RequestMessage]
           VALIDATION = WELL_FORMED_XML;
    CREATE MESSAGE TYPE
           [//AWDB/1DBSample/ReplyMessage]
           VALIDATION = WELL_FORMED_XML;
    GO
    

Crear el contrato

  • Copie y pegue el código siguiente en una ventana del Editor de consultas. Después, ejecútelo para crear el contrato para la conversación. El contrato especifica que las conversaciones que lo utilizan deben enviar mensajes del tipo //AWDB/1DBSample/RequestMessage del iniciador al destino, y mensajes del tipo //AWDB/1DBSample/ReplyMessage del destino al iniciador.

    CREATE CONTRACT [//AWDB/1DBSample/SampleContract]
          ([//AWDB/1DBSample/RequestMessage]
           SENT BY INITIATOR,
           [//AWDB/1DBSample/ReplyMessage]
           SENT BY TARGET
          );
    GO
    

Crear la cola y el servicio de destino

  • Copie y pegue el código siguiente en una ventana del Editor de consultas. Después, ejecútelo para crear la cola y el servicio que se usa para el destino. Dado que se hace referencia a las colas de la misma base de datos de una manera similar que a las tablas y vistas, a los nombres de cola se les da formato igual que a los de las tablas o vistas. La instrucción CREATE SERVICE asocia el servicio a la TargetQueue1DB. Por consiguiente, todos los mensajes que se envíen al servicio se recibirán en la TargetQueue1DB. CREATE SERVICE también especifica que solo las conversaciones que usan el //AWDB/1DBSample/SampleContract que se creó anteriormente puedan usar el servicio como servicio de destino.

    CREATE QUEUE TargetQueue1DB;
    
    CREATE SERVICE
           [//AWDB/1DBSample/TargetService]
           ON QUEUE TargetQueue1DB
           ([//AWDB/1DBSample/SampleContract]);
    GO
    

Crear la cola y el servicio del iniciador

  • Copie y pegue el código siguiente en una ventana del Editor de consultas. Después, ejecútelo para crear la cola y el servicio que se usa para el iniciador. Dado que no se especifica un nombre de contrato, ningún otro servicio puede usar éste como servicio de destino.

    CREATE QUEUE InitiatorQueue1DB;
    
    CREATE SERVICE
           [//AWDB/1DBSample/InitiatorService]
           ON QUEUE InitiatorQueue1DB;
    GO
    

Pasos siguientes

Ha configurado correctamente AdventureWorks2008R2 para admitir una conversación entre //AWDB/1DBSample/InitiatorService y //AWDB/1DBSample/TargetService. A continuación, completará una conversación con la configuración. Vea Lección 2: Comenzar una conversación y transmitir mensajes.