--select name, database_id, service_broker_guid, is_broker_enabled from sys.databases;
--1 one process messages table for storing sending message action
-- create table imessages ( Id uniqueidentifier not null, messagebody nvarchar(200), service_name nvarchar(200) ) ;
--2 create one message type that can be used by any conversation participant
-- create message type iMessage validation = none ;
--3. create a contract in which the imessage message type can be sent by any participant
-- create contract iContract ( iMessage sent by any ) ;
--4 create a target queue targetQueue for target service
--create queue targetQueue with status=on, retention = on on [default] ;
--5. create a source queue sourcequeue for source service
-- create queue sourcequeue with status = on ,retention = on on [default] ;
-- 6. create an initiator serivce for sending messages
--create service sendingmessage on queue sourcequeue ( iContract ) ;
-- 7. create a target service for receiving message
--create service receivingmessage on queue targetqueue ( iContract ) ;
--8 sending message
declare @dialog_handle uniqueidentifier ;
begin dialog conversation @dialog_handle
from service sendingmessage
to service 'receivingmessage'
on contract iContract
with encryption = off ;
send on conversation @dialog_handle message type iMessage ('hello world!') ;
end conversation @dialog_handle ;
go
select * from targetqueue ;
go
select * from sourcequeue ;
go
declare @ch uniqueidentifier , @service_name nvarchar(200) ;
receive top (1) @ch = conversation_handle, @service_name = service_name from targetqueue ;
print 'conversation handle:' + cast(@ch as nvarchar(max)) ;
print 'service Name :' + cast( @service_name as nvarchar(max)) ;
end conversation @ch
go
--1 one process messages table for storing sending message action
-- create table imessages ( Id uniqueidentifier not null, messagebody nvarchar(200), service_name nvarchar(200) ) ;
--2 create one message type that can be used by any conversation participant
-- create message type iMessage validation = none ;
--3. create a contract in which the imessage message type can be sent by any participant
-- create contract iContract ( iMessage sent by any ) ;
--4 create a target queue targetQueue for target service
--create queue targetQueue with status=on, retention = on on [default] ;
--5. create a source queue sourcequeue for source service
-- create queue sourcequeue with status = on ,retention = on on [default] ;
-- 6. create an initiator serivce for sending messages
--create service sendingmessage on queue sourcequeue ( iContract ) ;
-- 7. create a target service for receiving message
--create service receivingmessage on queue targetqueue ( iContract ) ;
--8 sending message
declare @dialog_handle uniqueidentifier ;
begin dialog conversation @dialog_handle
from service sendingmessage
to service 'receivingmessage'
on contract iContract
with encryption = off ;
send on conversation @dialog_handle message type iMessage ('hello world!') ;
end conversation @dialog_handle ;
go
select * from targetqueue ;
go
select * from sourcequeue ;
go
declare @ch uniqueidentifier , @service_name nvarchar(200) ;
receive top (1) @ch = conversation_handle, @service_name = service_name from targetqueue ;
print 'conversation handle:' + cast(@ch as nvarchar(max)) ;
print 'service Name :' + cast( @service_name as nvarchar(max)) ;
end conversation @ch
go