--验证数据库是否能启用Service Broker
SELECT DATABASEPROPERTYEX('DBName','IsBrokerEnabled')
SELECT * FROM sys.databases
   WHERE name = 'DBName'
   AND is_broker_enabled = 1--查询Service Broker是否可用
ALTER DATABASE DBName SET ENABLE_BROKER--启动Service Broker


   ( [HelloWorldRequest] SENT BY initiator,
     
[HelloWorldResponse] SENT BY target)
CREATE QUEUE [HelloWorldTargetQueue]
CREATE QUEUE [HelloWorldInitiatorQueue]
CREATE SERVICE [HelloWorldRequestService] ON QUEUE [HelloWorldTargetQueue]
   ( 
[HelloWorldContract] )
CREATE SERVICE [HelloWorldResponseService] ON QUEUE [HelloWorldInitiatorQueue]
--drop SERVICE [HelloWorldRequestService]
--
drop SERVICE [HelloWorldResponseService]
--
drop QUEUE [HelloWorldTargetQueue]
--
drop QUEUE [HelloWorldInitiatorQueue]
--
drop CONTRACT [HelloWorldContract]
--
drop MESSAGE TYPE [HelloWorldRequest]
--
drop MESSAGE TYPE [HelloWorldResponse]

--开始 Hello World 服务的对话
SET NOCOUNT ON
DECLARE @conversationHandle uniqueidentifier
Begin Transaction
    
BEGIN DIALOG  @conversationHandle
    
FROM SERVICE    [HelloWorldResponseService]
    
TO SERVICE      'HelloWorldRequestService'
    
ON CONTRACT     [HelloWorldContract]
    
WITH ENCRYPTION = OFF, LIFETIME = 60;
    
-- 发送消息
    SEND ON CONVERSATION @conversationHandle 
    MESSAGE TYPE 
[HelloWorldRequest] (N'Hello World'
        
--消息类型为XML时如:(N'<root>Hello World</root>')
commit

select * from [HelloWorldTargetQueue]
select cast(message_body as nvarchar(MAX)) from [HelloWorldTargetQueue]

 

select * from sys.transmission_queue--查询Service Broker消息失败原因

END CONVERSATION @conversation_handle WITH CLEANUP

相关文章:

  • 2021-06-06
  • 2021-12-06
  • 2021-09-19
  • 2021-09-10
  • 2022-12-23
  • 2022-02-27
猜你喜欢
  • 2021-09-07
  • 2022-12-23
  • 2021-11-29
  • 2022-03-01
  • 2021-06-07
  • 2022-02-20
  • 2021-11-03
相关资源
相似解决方案