Lección 1: Crear los objetos de conversación
Nuevo: 15 de septiembre de 2007
En esta lección, aprenderá a generar todos los objetos que permiten que una base de datos admita una conversación en la base de datos.
Procedimientos
Habilitar Service Broker y cambiar a la base de datos de AdventureWorks
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 de
AdventureWorks
, y cambie el contexto a la base de datos.USE master; GO ALTER DATABASE AdventureWorks SET ENABLE_BROKER; GO USE AdventureWorks; GO
Crear los tipos de mensaje
Copie y pegue el código siguiente en una ventana del Editor de consultas. A continuación, 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 en varias instancias de Database Engine (Motor de base de datos), la mayoría de los nombres de los objetos de Service Broker tienen un formato URI. Esto ayuda a garantizar que son únicos en varios equipos. Estos dos tipos de mensaje especifican que Service Broker valide únicamente que los mensajes son documentos XML correctos y que no valide el 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. A continuación, 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 desde el iniciador hasta el destino, y mensajes del tipo //AWDB/1DBSample/ReplyMessage desde el destino hasta el iniciador.
CREATE CONTRACT [//AWDB/1DBSample/SampleContract] ([//AWDB/1DBSample/RequestMessage] SENT BY INITIATOR, [//AWDB/1DBSample/ReplyMessage] SENT BY TARGET ); GO
Crear el servicio y la cola de destino
Copie y pegue el código siguiente en una ventana del Editor de consultas. A continuación, ejecútelo para crear la cola y el servicio que se utilizan para el destino. Dado que se hace referencia a las colas de la misma base de datos de una manera similar a las tablas y vistas, se da formato a los nombres de la cola como a los nombres de vista o tabla. La instrucción CREATE SERVICE asocia el servicio a TargetQueue2DB. Por consiguiente, todos los mensajes que se envían al servicio se recibirán en TargetQueue2DB. CREATE SERVICE especifica también que sólo las conversaciones que utilizan la ruta //AWDB/1DBSample/SampleContract creada anteriormente, pueden utilizar el servicio como un servicio de destino.
CREATE QUEUE TargetQueue1DB; CREATE SERVICE [//AWDB/1DBSample/TargetService] ON QUEUE TargetQueue1DB ([//AWDB/1DBSample/SampleContract]); GO
Crear el servicio y la cola de iniciador
Copie y pegue el código siguiente en una ventana del Editor de consultas. A continuación, ejecútelo para crear la cola y el servicio que se utilizan para el iniciador. Dado que no se especifica un nombre de contrato, ningún otro servicio puede utilizar este servicio como un servicio de destino.
CREATE QUEUE InitiatorQueue1DB; CREATE SERVICE [//AWDB/1DBSample/InitiatorService] ON QUEUE InitiatorQueue1DB; GO
Pasos siguientes
Ha configurado correctamente AdventureWorks para una conversación entre //AWDB/1DBSample/InitiatorService y //AWDB/1DBSample/TargetService. A continuación, finalizará una conversación mediante la configuración. Vea Lección 2: Comenzar una conversación y transmitir los mensajes.
Vea también
Otros recursos
ALTER DATABASE (Transact-SQL)
CREATE MESSAGE TYPE (Transact-SQL)
CREATE CONTRACT (Transact-SQL)
CREATE QUEUE (Transact-SQL)
CREATE SERVICE (Transact-SQL)
Arquitectura de la conversación
Arquitectura de servicio