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 ...
随机推荐
- WUSTOJ 1336: Lucky Boy(Java)博弈
题目链接:1336: Lucky Boy 参考博客:LUCKY BOY 博弈--HandsomeHow Description Recently, Lur have a good luck. He i ...
- TZOJ3133: 求对称点
#include<stdio.h> int main() { double a,b,c,d,e,f,g,h,i; while(~scanf("%lf %lf %lf %lf %l ...
- Angular Material 学习笔记 Chips
依据 material guidelines, chips 可以用来做 filter https://material.io/design/components/chips.html#filter-c ...
- idea .gitignore模板
IDEA 创建的项目,需要搞个.gitignore文件,文件内容可以参考插件的. # Created by .ignore support plugin (hsz.mobi) ### JetBrain ...
- .NET Core 使用swagger进行分组显示
其实,和swagger版本管理类似;只是平时接口太多;不好供前端人员进行筛选. 下面进入主题: 首先: //注册Swagger生成器,定义一个和多个Swagger 文档 services.AddSwa ...
- 【转载】C#将字符串中字母全部转换为大写或者小写
在C#的编程开发过程中,有时候判断字符串是否相等时,并不关注字母的大小写,此时在C#中可以使用ToUpper方法将字符串中所有的字母转换为大写,使用ToLower方法可以将字符串中所有字母转换为小写. ...
- JQuery里input属性赋值,取值prop()和attr()方法?
一.赋值的时候 如果是<input type="checkbox" checked>这样的只有属性名就能生效的属性 推荐prop,即:$('input').prop(' ...
- JSONObject和URL以及HttpURLConnection的使用
1 将java对象类转成json格式 首先引入依赖jar文件 注意依赖文件的版本号,高版本可能没有对应的类 2 我的实体类中包含内部类注意内部类要public才能被序列化成json格式 import ...
- 微信小程序错误readFile:fail parameter error: parameter.filePath should be String instead of Undefined;
我是在使用camera组件时遇到的该问题 原因是未保存文件路径(微信使用摄像头拍照后会把图片保存在一个临时的路径,所以你需要自己定义一个变量来存这个路径,以备下次使用该变量去访问文件) 所以加上你需要 ...
- WebService 规范
详见:https://blog.csdn.net/u011165335/article/details/51345224 JAVA 中共有三种WebService 规范,分别是JAX-WS(JAX-R ...