SQL Server 2012 中的 Service Broker功能的一些改进或增强

1. 可以将消息发送到多个目标服务(多播)

通过支持多个会话句柄,扩展了 SEND (Transact-SQL) 语句的语法以启用多播。

DECLARE @dialog_handle1 UNIQUEIDENTIFIER,
        @dialog_handle2 UNIQUEIDENTIFIER,
        @dialog_handle3 UNIQUEIDENTIFIER,
        @OrderMsg XML ;

SET @OrderMsg = < construct message as appropriate for the application > ;

BEGIN DIALOG @dialog_handle1
FROM SERVICE [//InitiatorDB/InitiatorService]
TO SERVICE '//TargetDB1/TargetService’
ON CONTRACT [//AllDBs/OrderProcessing] ;

BEGIN DIALOG @dialog_handle2
FROM SERVICE [//InitiatorDB/InitiatorService]
TO SERVICE '//TargetDB2/TargetService’
ON CONTRACT [//AllDBs/OrderProcessing] ;

BEGIN DIALOG @dialog_handle3
FROM SERVICE [//InitiatorDB/InitiatorService]
TO SERVICE '//TargetDB3/TargetService’
ON CONTRACT [//AllDBs/OrderProcessing] ;

SEND ON CONVERSATION (@dialog_handle1, @dialog_handle2, @dialog_handle3)
    MESSAGE TYPE [//AllDBs/OrderMsg]
    (@OrderMsg) ;

2. 队列将公开此消息排队时间

队列具有一个新列 message_enqueue_time,用于显示消息已在队列中待了多少时间。

3. 可以禁用有害消息处理

现在,CREATE QUEUE 和 ALTER QUEUE语句可以通过添加子句 POISON_MESSAGE_HANDLING (STATUS = ON | OFF) 来启用或禁用有害消息处理。 目录视图 sys.service_queues 现在具有列 is_poison_message_handling_enabled,以指示是启用还是禁用有害消息。

POISON_MESSAGE_HANDLING — 指定是否对队列启用有害消息处理。 默认值为 ON。

将有害消息处理设置为 OFF 的队列在五个连续的事务回滚之后不会被禁用。 这样,应用程序就可以定义自定义的有害消息处理系统。

4. Service Broker 中的 AlwaysOn 支持

SQL Server Service Broker Poison Message Handling

使用ServiceBroker自动激活模拟"秒杀"场景

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

dg broker配置的问题及分析 (r7笔记第22天)

今天在配置一个备库的时候碰到了一些问题,话说配置dg broker真没什么特别需要注意的细节了,本身已经给DBA省了很大的事儿了。 但是有时候就是会出现一些稀奇...

3834
来自专栏数据分析

[SQLServer大对象]——FileTable从文件系统迁移文件

阅读导航 从文件系统中迁移文件到FileTable 批量加载文件到FileTable 如何批量加载文件到FileTable 通过博文[SQLServer大对象]...

3866
来自专栏乐沙弥的世界

Oracle 实例恢复

Oracle实例失败多为实例非一致性关闭所致,通常称为崩溃(crash)。实例失败的结果等同于shutdown abort。

1165
来自专栏互联网杂技

SpringBoot ( 七 ) :springboot + mybatis 多数据源最简解决方案

说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务。我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决...

1743
来自专栏沃趣科技

Oracle Data Guard Feature 12cR2系列(一)

Data Guard是Oracle推出的一种高可用性数据库方案,从Oracle 9i开始正式更名为Oracle Data Guard。Data Guard在11...

1504
来自专栏JackeyGao的博客

Karabiner profile 命令行切换方式

Karabiner 提供了一个命令行工具来方便脚本编程, 一般这个命令行工具在安装包的bin目录下, 具体地址为: /Applications/Karabine...

903
来自专栏zhangdd.com

解决MySQL 5.7日志时间与本地时间不一致的问题

在MySQL 5.7.2 新增了 log_timestamps 这个参数,该参数主要是控制 error log、genera log,等等记录日志的显示时间参数...

992
来自专栏Hadoop实操

Hive Load本地数据文件异常分析

使用beeline登录HiveServer2向my_table表Load本地数据文件时报如下异常:

4934
来自专栏我的博客

Sqlite使用说明

安装apt-get install slqite .databases List names and files of attached databases(列...

3514
来自专栏杨建荣的学习笔记

11g主库归档自动删除的小问题分析 (r8笔记第1天)

最近在无疑中查看一个数据库的日志的时候,发现里面有这么一段内容。 Sat Feb 06 10:07:25 2016 Deleted Oracle manag...

34911

扫码关注云+社区

领取腾讯云代金券