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 ...
随机推荐
- Windows 下配置 ApacheBench (AB) 压力测试
下载 http://httpd.apache.org/download.cgi 我用的是ApacheHaus. 安装服务 1. 打开apache目录下的 conf/httpd.conf,搜索并修改 L ...
- Spring bean加载之1:BeanFactory和FactoryBean
BeanFactory BeanFactory:以Factory结尾,表示它是一个工厂类(接口),用于管理Bean的一个工厂.在Spring中,BeanFactory是IOC容器的核心接口,它的职责包 ...
- UVALive-8201-BBP Formula
8201-BBP Formula Time limit: 3.000 seconds In 1995, Simon Plouffe discovered a special summation sty ...
- 用jquery和php实现ajax异步请求响应
ajax技术可以实现异步请求和响应,下面的是用jquery向一个php脚本发送异步请求,并得到响应. 第一步,准备好前台的html表单,和jquery实现的ajax请求 <html lang=& ...
- PAT(B) 1048 数字加密(Java)字符串
题目链接:1048 数字加密 (20 point(s)) 题目描述 本题要求实现一种数字加密方法.首先固定一个加密用正整数 A,对任一正整数 B,将其每 1 位数字与 A 的对应位置上的数字进行以下运 ...
- nginx与PHP编译configure
configure参数nginx和php是编译安装的关键.记录下来备用: php: ./configure --prefix=/usr/local/php --with-config-file-pat ...
- 解决阿里云OSS The requested bucket name is not available的办法
今天在创建Bucket的时候遇到了这个问题 The requested bucket name is not available. The bucket namespace is shared by ...
- centos6克隆虚拟机后,网络无法访问和启动
使用vmware安装centos6虚拟机时, 克隆虚拟机后无法访问网络. 原因是:产生了重复的网卡信息** 克隆后在70-persistent-net.rules文件中会多一行网卡信息,把第一行网卡信 ...
- robot framework 的关键字Continue For Loop 用法
Continue For Loop关键字就是python的continue的意思,跳出本层循环,继续执行下一个循环. 我先举个栗子: :FOR ${index} IN RANGE 5 ...
- Vue.js 教程 -- 实例讲解
一. Vue.js是什么 Vue.js是一套构建用户界面(view)的MVVM框架.Vue.js的核心库只关注视图层,并且非常容易学习,非常容易与其他库或已有的项目整合. 1.1 Vue.js的目的 ...