Welcome to MSDN Blogs Sign in | Join | Help
SQL Service Broker: The Impatient Way!

For those of you who are interested in creating your first SQL Server 2005 Service Broker conversation but are impatient as I am, just grab the code below and give it a try:

-- Enable service broker
alter
database [YOUR_DB_NAME] set enable_broker

-- Create a message type. You can also specify

--  An XML schema to validate messages of this type:

create message type TestMessageType

       validation = none

go

 

-- Create a send and a receive queue

create queue TestSendQueue

create queue TestReceiveQueue

go

 

-- Now create a contract for our message type.

-- A contract defines the message type

--  which can be used by a service broker conversation.

--  You can also specify who (initiator or target)

--  can send messages of this message type

create contract TestContract

(TestMessageType sent by any)

go

 

-- We now need services. A service is particular task that

--   allows us to send and receive messages

create service TestSendService

on queue TestSendQueue (TestContract)

 

create service TestReceiveService

on queue TestReceiveQueue (TestContract)

go

 

-- The next step is to start a dialog between

--  services on a specific contract

declare @conversationHandle uniqueidentifier

begin dialog conversation @conversationHandle

       from service TestSendService

       to service 'TestReceiveService'

       on contract TestContract

       with encryption = off

go

 

-- Now try and send a message using the above conversation

 

-- The first step is to get the conversation handle (it is important

--   to note that the same conversation handle returned

--   by the BEGIN DIALOG statement could also be used - just

--   drop the GO statement)

declare @conversationHandle uniqueidentifier

select @conversationHandle = conversation_handle

       from sys.conversation_endpoints

       where far_service = 'TestReceiveService';

 

send on conversation @conversationHandle

       message type TestMessageType

(N'Test Message (' + cast(newid() as varchar(36)) + ')')

go

 

-- Now receive from the queue

receive convert(nvarchar(max), message_body)

from TestReceiveQueue

go

Good luck!

Posted: Friday, December 29, 2006 6:34 PM by pedramr
Filed under:

Comments

No Comments

Leave a Comment

(required) 

(required) 

(optional)

(required) 

  
Enter Code Here: Required

Comment Notification

If you would like to receive an email when updates are made to this post, please register here

Subscribe to this post's comments using RSS

Page view tracker