Service Broker Simple Example

--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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dbLenis

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值