viernes, 11 de diciembre de 2009

Ejemplo Basico de Service Broker

Crear Base de Datos y habilitar servicio

CREATE DATABASE ServiceBrokerTest
GO
USE ServiceBrokerTest
GO
-- Habilitar Service Broker
ALTER DATABASE ServiceBrokerTest SET ENABLE_BROKER
GO


Son 4 Elementos Basicos

- Mensaje
- Contrato
- Cola
-Cola de Envio
-Cola de Recepcion
- Servicio
-Servicio de Envio
-Servicio de Recepcion


-- Crear Mensaje
CREATE MESSAGE TYPE SBMessage
VALIDATION = NONE
GO
-- Crear Contrato
CREATE CONTRACT SBContract
(SBMessage SENT BY INITIATOR)
GO
-- Crear Cola de Envio
CREATE QUEUE SBSendQueue
GO
-- Crear Cola de Recepcion
CREATE QUEUE SBReceiveQueue
GO

-- Crear Servicio de Envio para Cola de Envio
CREATE SERVICE SBSendService
ON QUEUE SBSendQueue (SBContract)
GO
-- Creando Servicio de Recepcion para Cola de Recepcion
CREATE SERVICE SBReceiveService
ON QUEUE SBReceiveQueue (SBContract)
GO

-- Iniciar Dialogo usando el servicio en el contrato
DECLARE @SBDialog uniqueidentifier
DECLARE @Message nvarchar(128)
BEGIN DIALOG CONVERSATION @SBDialog
FROM SERVICE SBSendService
TO SERVICE 'SBReceiveService'
ON CONTRACT SBContract
WITH ENCRYPTION = OFF
-- Enviando Mensajes al Dialogo
SET @Message = N'Primer Mensaje';
SEND ON CONVERSATION @SBDialog
MESSAGE TYPE SBMessage (@Message)
SET @Message = N'Segundo Mensaje';
SEND ON CONVERSATION @SBDialog
MESSAGE TYPE SBMessage (@Message)
SET @Message = N'Tercer Mensaje';
SEND ON CONVERSATION @SBDialog
MESSAGE TYPE SBMessage (@Message)
GO

-- Viendo Mensajes de la cola de Recepcion
SELECT CONVERT(NVARCHAR(max), message_body) AS Message
FROM SBReceiveQueue
GO

-- Recibiendo Mensajes de la Cola de Recepcion
RECEIVE TOP(1) CONVERT(NVARCHAR(max), message_body) AS Message
FROM SBReceiveQueue
GO

-- Recibiendo Mensajes de la Cola de Recepcion
RECEIVE CONVERT(NVARCHAR(max), message_body) AS Message
FROM SBReceiveQueue
GO

No hay comentarios:

Publicar un comentario