SQL:SQL Broker
-- =============================================
--启用 Broker USE master;
GO ALTER DATABASE DEV_AMS
SET ENABLE_BROKER;
GO --或者
ALTER DATABASE 目标数据库
SET NEW_BROKER WITH ROLLBACK IMMEDIATE;
GO
ALTER DATABASE DEV_AMS
SET ENABLE_BROKER;
GO
-- =============================================
--1.消息类型:创建消息类型
CREATE MESSAGE TYPE CreateUserMessage
VALIDATION = None
GO --2.约定:创建约定
CREATE CONTRACT CreateUserContract
(CreateUserMessage SENT BY ANY);--多个消息逗号隔开
GO --3.队列:创建队列
--发送队列、接收队列
CREATE QUEUE CreateUserSendQueue
WITH STATUS=ON
GO
CREATE QUEUE CreateUserReceiveQueue
WITH STATUS=ON
GO --4.服务:创建服务
--发送服务,接收服务
CREATE SERVICE CreateUserSendService
ON QUEUE CreateUserSendQueue
(CreateUserContract);
GO CREATE SERVICE CreateUserReceiveService
ON QUEUE CreateUserReceiveQueue
(CreateUserContract);
GO -- =============================================
--1.测试发送
--Dialog会话用于服务间信息交换
DECLARE @Init_Handler uniqueidentifier
DECLARE @UserMsg nvarchar(100)
SET @UserMsg='张三入职' --BEGIN TRANSACTION; BEGIN DIALOG CONVERSATION @Init_Handler
FROM SERVICE CreateUserSendService
TO SERVICE 'CreateUserReceiveService'
ON CONTRACT CreateUserContract
WITH
ENCRYPTION=OFF;--分号结束
--发送
SEND ON CONVERSATION @Init_Handler
MESSAGE TYPE [CreateUserMessage]
(@UserMsg); --COMMIT TRANSACTION;
GO --2.测试接收 DECLARE @RecvReqDlgHandle uniqueidentifier
DECLARE @RecvReqMsg nvarchar(100)
DECLARE @RecvReqMsgName sysname BEGIN TRANSACTION WAITFOR
(
RECEIVE TOP(1)
@RecvReqDlgHandle = conversation_handle,
@RecvReqMsg = message_body,
@RecvReqMsgName = message_type_name
FROM CreateUserReceiveQueue
), TIMEOUT 1000; IF @RecvReqMsgName = N'CreateUserMessage'
BEGIN
-- 定义准备用于返回的消息.
DECLARE @ReplyMsg NVARCHAR(100);
-- 简单设置.
SELECT @ReplyMsg = '~' + @RecvReqMsg + '~';
-- 调试输出.
PRINT '我接收到:' + @RecvReqMsg + '; 我将反馈:' + @ReplyMsg;
-- 发送反馈消息.
SEND ON CONVERSATION @RecvReqDlgHandle
MESSAGE TYPE [CreateUserMessage] (@ReplyMsg);
END CONVERSATION @RecvReqDlgHandle;
END; COMMIT TRANSACTION;
GO --
select * from [dbo].[CreateUserSendQueue]
select * from [dbo].[CreateUserReceiveQueue]
资源:
https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2008/bb839495%28v%3dsql.100%29
SQL:SQL Broker的更多相关文章
- BizTalk 开发系列(四十) BizTalk WCF-SQL Adapter读取SQL Service Broker消息
SQL Service Broker 是在SQL Server 2005中新增的功能.Service Broker 为 SQL Server 提供队列和可靠的消息传递,可以可用来建立以异步消息为基础的 ...
- [SQL]SQL类似统计功能的sql文
declare @t table(name varchar(),type int) insert into @t union all union all union all union all if ...
- pl/sql sql窗口允许输出和允许变量替换
pl/sql sql窗口允许输出和允许变量替换 允许输出:类似在命令窗口中输入的 setserveroutput on; 允许变量替换:如果点击了这个,类似于执行 set define off命令 在 ...
- [SQL] SQL 基础知识梳理(一)- 数据库与 SQL
SQL 基础知识梳理(一)- 数据库与 SQL [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5902856.html 目录 What's 数据库 ...
- [SQL] SQL 基础知识梳理(二) - 查询基础
SQL 基础知识梳理(二) - 查询基础 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5904824.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(三) - 聚合和排序
SQL 基础知识梳理(三) - 聚合和排序 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5926689.html 序 这是<SQL 基础知识梳理 ...
- [SQL] SQL 基础知识梳理(四) - 数据更新
SQL 基础知识梳理(四) - 数据更新 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5929786.html 序 这是<SQL 基础知识梳理( ...
- [SQL] SQL 基础知识梳理(五) - 复杂查询
SQL 基础知识梳理(五) - 复杂查询 [博主]反骨仔 [原文]http://www.cnblogs.com/liqingwen/p/5939796.html 序 这是<SQL 基础知识梳理( ...
- SQL SQL语句的增删改查
一.增:有2种方法 1.使用insert插入单行数据: 语法:insert [into] <表名> [列名] values <列值> 例:insert into Strdent ...
随机推荐
- python 之 数据库(字段的约束条件,表之间的关系)
10.6 约束条件 10.61 not null .default create table t15( id int, name ) not null, sex enum('male','female ...
- Go语言学习笔记(10)——错误处理示例
// 定义一个 DivideError 结构 type DivideError struct { dividee int divider int } // 实现 `error` 接口 func (de ...
- jdk8新特性--使用lambda表达式的延迟执行特性优化性能
使用lambda表达式的延迟加载特性对代码进行优化:
- win7 ReadyBoot 文件位置修改
右键我的电脑,依次点开系统工具-性能-数据收集器集-系统-事件跟踪会话 在右边找到ReadyBoot,右键打开属性,会话框上方选择文件,根据示例文件名的路径找到ReadyBoot.etl文件,复制到你 ...
- vue-cli3.0 关闭eslint校验
1. 跟着课程学习vue高级训练营时,vue-cli老是报eslint校验错误,把它关了! 网上找到了图中这个写法,可是报错啊! 解决办法:把false改为true 参考:https://blog ...
- vue的mescroll搜索运用以及各种填坑处理
父组件处理: <template> <div class="wrap"> <!-- 搜索框 --> <div class="se ...
- cocos-js 精灵移动转圈
cc.Class({ extends: cc.Component, properties: { carModel: { default: null, type: cc.Sprite }, bgMode ...
- 如何使用点击超链接的方式打开Android手机上的应用
在Android应用的AndroidManifest.xml里加入如下的配置片段: <action android:name="my_action"/> <cat ...
- ipv4与ipv6 Inet4Address类和Inet6Address类
在设置本地IP地址的时候,一些人会疑惑IPv4与IPv6的区别是什么?下面由学习啦小编为你分享ipv4与ipv6的区别的相关内容,希望对大家有所帮助. ipv4与ipv6的区别 在windows 7以 ...
- shell 三剑客之 sed 命令详解
sed 编辑命令 sed 编辑命令对照表 把 /etc/passwd 文件赋值到当前路径下,进行操作 cp /etc/passwd ./ cat -n passwd sed 删除操作 删除 passw ...