`
netxdiy
  • 浏览: 721044 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

SQL Server 2008中Service Broker基础应用(上)

 
阅读更多

SQL Server 2008中SQL应用系列--目录索引

导读:本文主要涉及Service Broker的基本概念及建立一个Service Broker应用程序的基本步骤。

一、前言

Service Broker为SQL Server提供消息队列,这提供了从数据库中发送异步事务性消息队列的方法。Service Broker消息可以保证以适当的顺序或原始的发送顺序不重复地一次性接收。并且因为内建在SQL Server中,这些消息在数据库发生故障时是可以恢复的,也可以随数据库一起备份。在SQL Server 2008中,还引入了使用Create Broker Priority命令对会话设定优先级,可以对重要的或不重要的会话进行优先级设定,以保证消息合理地处理。

本文假定一个在线数据库BookStore中存储了一些业务订单。我们使用Service Broker应用程序将消息发送到另一个数据库BookDistribution,该数据库是分离的应用程序调用,该应用程序控制仓库入库和出库交付, 并返回消息给BookStore。

创建Service Broker应用程序大体步骤如下:

1、定义希望应用程序执行的异步任务。

2、确定Service Broker的发起方服务和目标服务是否创建在同一个SQL Server实例中。如果是两个实例,实例间的通信还需要创建经过证书认证或NT安全的身份认证,并且要创建端点、路由以及对话安全模式。

3、如果没有启用,则在多方参与的数据库中使用Alter Database命令设置Enable_broker以及Truseworthy数据库选项。

4、为所有多方参与的数据库创建数据库主密钥。

5、创建希望在服务之间发送的消息类型。

6、创建契约(Contract)来定义可以由发起方发送的各种消息以及由目标发送的消息类型的种类。

7、同时在两方参与的数据库中创建用于保存消息的队列。

8、同时在绑定特定约定到特定队列的多方参与的数据库中创建服务。

二、实例

下面我们通过一个示例来实现以上步骤:

(一)、启用数据库的Service Broker活动

(二)、创建数据库主密钥

(三)、管理消息类型

使用CREATE MESSAGE TYPE(http://msdn.microsoft.com/en-us/library/ms187744.aspx)命令,

--注意,此处没有定义消息的内容。实际的消息是消息类型的实例。

(四)、创建契约(Contract)

使用Create Contract(http://msdn.microsoft.com/en-us/library/ms178528.aspx

--发起方和目标的定义必须相同

(五)、创建队列

队列用来保存数据。使用命令Create queue(http://msdn.microsoft.com/en-us/library/ms190495.aspx

(六)、创建服务

服务定义端点,然后使用它来将消息队列绑定到一个或多个契约上。服务使用队列和契约来定义一个或一组任务。有点拗口,是不是?

服务是消息的发起方和接收方强制约定的规则,并将消息路由到正确的序列。

使用Create Service(http://msdn.microsoft.com/en-us/library/ms190332.aspx)命令。

(七)、启动对话

对话会话(dialog conservation)是在服务之间进行消息交换的操作。

使用Begin Dialog Conversation(http://msdn.microsoft.com/en-us/library/ms187377.aspx) 命令创建新的会话。使用Send(http://msdn.microsoft.com/en-us/library/ms188407.aspx)来发送消息。使用End Conversation命令(http://msdn.microsoft.com/en-us/library/ms177521.aspx)结束会话。

(八)、查询队列中传入的消息

查询结果:

邀月工作室

(九)、检索并响应消息

使用Receive语句(http://msdn.microsoft.com/en-us/library/ms186963.aspx)从队列中读取行(消息),也可以删除已经读取的消息。Receive的结果可以填充到常规表中,也可以在局部变量中执行其他操作,或发送到其他service Broker消息。如果消息是XML数据类型的消息,则可以直接借助TSQL的XQuery来操作。

(十)、结束会话


邀月工作室

三、小结

本文通过一个实例演示了一个用来发送图书订单消息分发控制数据库的简单的消息交换应用程序。发起方发送图书订单,发回一个响应,并在两个数据库上使用END Conservation结束会话。现实场景中可以转换为其他消息类型、契约、服务和队列。合理运用Service Broker应用程序的异步特性可以防止因应用程序挂起而导致业务系统产生瓶颈。

本文参考:

1、SQL Server 2005 Service Broker 初探

http://msdn.microsoft.com/zh-cn/library/ms345108%28v=sql.90%29.aspx

2、SQL Server 2008 Transact-SQL Recipes: A Problem-Solution Approach

http://www.amazon.com/Server-2008-Transact-SQL-Recipes-Problem-Solution/dp/1590599802

邀月注:本文版权由邀月和CSDN共同所有,转载请注明出处。
助人等于自助! 3w@live.cn



分享到:
评论

相关推荐

    SQL Server 2008中Service Broker基础应用

    下面将详细阐述Service Broker的基础应用及其在SQL Server 2008中的实现步骤。 首先,Service Broker的核心功能是提供消息队列,它支持数据库之间的异步通信。这意味着在主业务流程中,发送方可以立即返回确认,而...

    Pro SQL Server 2008 Service Broker 数据库

    《Pro SQL Server 2008 Service Broker》是针对SQL Server 2008数据库系统中Service Broker特性的深入解析教程。Service Broker是SQL Server的一个重要组件,它为数据库间的异步通信提供了强大的支持,使得分布式...

    Pro SQL Server 2008 Service Broker

    ### Pro SQL Server 2008 Service Broker:深入解析与应用 #### 一、SQL Server 2008 Service Broker简介 SQL Server 2008 Service Broker 是一种基于消息的平台,它允许应用程序在数据库之间异步地传递消息。这种...

    用SQL语句解决Service Broker未启动的问题

    Service Broker 是 SQL Server 2005 中引入的一个新功能,它使数据库管理员可以创建异步消息应用程序。Service Broker 应用程序由多个对象组成,包括消息队列、对话和服务_contract。消息队列是用于存储消息的数据库...

    SQL Server Service Broker基础知识

    下面是一份关于 SQL Server Service Broker 基础知识介绍的PPT 文档,可以下载。 演讲者:EntLib.com MSN & Email:entlib@hotmail.com 如有任何技术问题或者培训需求,欢迎和我们联系或者留言。

    SQL Server 2005 ServiceBroker详解(二)

    在提供的资源中,`20060828--SQL Server 2005 ServiceBroker详解(二).pdf` 文件很可能包含了关于如何设置、配置和使用Service Broker 的详细教程,包括实例演示和最佳实践,这对于理解和掌握这一特性非常有帮助。...

    SQL Server 2005 Service Broker 初探

    SQL Server 2005 Service Broker 是一项强大的功能,它为数据库应用程序引入了可靠、可扩展的异步消息处理机制。Service Broker 解决了在数据库中实现高效排队操作的复杂性和挑战,使得开发人员能够更专注于业务逻辑...

    深入解析sqlserver 2008 Microsoft SQL Server 2008 Internals

    10. **高级特性**:SQL Server 2008引入了许多新特性,如列存储索引、数据压缩、Service Broker(服务总线)以及Master Data Services(主数据服务),这些都是提升数据库功能和性能的重要工具。 本书不仅适合...

    sql server2008 jdbc驱动

    SQL Server 2008 JDBC驱动还支持一些高级特性,如读写分离、分布式事务、大数据类型处理(如XML和二进制数据)、JDBC批处理以及SQL Server特有的功能(如Service Broker或Integration Services)。 9. **错误处理*...

    SQL.Server.2005.Service.Broker

    本书旨在深入讲解如何利用SQL Server 2005 Service Broker编程分布式消息应用程序。 ### SQL Server 2005 Service Broker概述 SQL Server 2005 Service Broker是一种基于消息传递的通信平台,它允许SQL Server...

    SQL Server 2005 ServiceBroker详解(一)

    在“SQL Server 2005 ServiceBroker详解(一)”这个资源中,可能包含了以下内容: - PowerPoint 演示文稿:详细介绍了Service Broker的基本概念、架构和工作原理,以及如何配置和管理服务、队列和对话。 - 视频教程...

    SQL Server 2008

    通过对本书的学习,不仅可以掌握SQL Server 2008 的基础知识,还能深入了解Service Broker 这一强大组件的使用方法,这对于从事数据库管理和软件开发工作的人员来说是非常有价值的。无论是初学者还是有经验的专业...

    SQL Server Service Broker 疑难杂症汇总

    Service Broker 是 Microsoft SQL Server 2005/2008/2012 中的新技术,它可帮助数据库开发人员生成安全、可靠且可伸缩的应用程序。本文档由 EntLib.com team 编写。

    sql server broker基本用法

    SQL Server Broker(SQL Service Broker,简称SSB)是微软在SQL Server中提供的一种异步消息队列技术,用于实现数据库间的可靠通信和异步处理。它允许数据库应用程序发送和接收消息,提供了高可用性、安全性和可扩展...

    Microsoft SQL Server 2005 向后兼容组件SQLServer2005_BC.msi

    SQLServer2005_BC.msi 文件是这个向后兼容组件的安装程序,它包含了用于在更新的SQL Server环境中模拟SQL Server 2005环境的特定库和接口。安装此组件后,用户可以继续使用那些设计时依赖SQL Server 2005特性的应用...

    sqlserver驱动2012版

    标签中的“sqlserver”代表的是微软的数据库管理系统,它广泛应用于企业级的数据存储和处理。"驱动"在这里是指用于连接数据库的软件组件,比如SQLNCLI。"navicat"则指代Navicat工具,它是数据库管理和开发的利器。...

    SQL Server2008从入门到精通PPT.rar

    《SQL Server 2008从入门到精通》是一份全面介绍Microsoft SQL Server 2008数据库管理系统的学习资料,适合初学者和有一定基础的IT从业者。这份PPT旨在帮助用户掌握SQL Server 2008的核心功能和操作技巧,从而在实际...

    Sql Server 2014 安装包

    SQL Server 2014是微软推出的一款关系型数据库管理系统,它在企业...通过这个安装包,你不仅能够搭建一个运行SQL Server 2014的环境,还能使用强大的管理工具进行数据库管理,从而开启在SQL Server上的学习和工作之旅。

Global site tag (gtag.js) - Google Analytics