下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Server Broker是 SQL Server 2005 中新增加功能。一、简介(来自SQL 2K05的帮助文档)Microsoft SQL Server 2005 Service Broker可以帮助开发人员生成可伸缩的、安全的数据库应用程序。此项新技术是 数据库引擎 的一部分,它提供一个基于消息的通信平台,使独立的应用程序组件可以作为一个整体来运行。 Service Broker 包含用于异步编程的基础结构,可用于单个数据库或单个实例中的应用程序,也可用于分布式应用程序。Service Broker 提供了生成分布式应用程序所需的大部分基础结构,从而减少了应用程序的开发时间。利用 Se
2、rvice Broker ? 还可以轻松缩放应用程序,以容纳应用程序接收的通信流量。Service Broker是 Microsoft SQL Server 2005中的新技术,它可帮助数据库开发人员构建安全、可靠且可伸缩的应用程序。由于 Service Broker 是数据库引擎 的组成部分,因此管理这些应用程序就成为数据库日常管理的一部分。Service Broker 为 SQL Server 提供队列和可靠的消息传递。 Service Broker 对使用单个 SQL Server 实例的应用程序和在多个实例间分配工作的应用程序都适用。在单个 SQL Server实例中, Service
3、 Broker提供了可靠的异步编程模型。数据库应用程序通常使用异步编程来缩短交互式响应时间,并增加应用程序总吞吐量。二、 Server Broker实现消息的发送( 一同一实例同一数据库下的消息发送1. 准备工作:1.1 创建数据库 ssbDemouse mastergoif exists( select top 1 1from sys.sysdatabases with(nolockwhere name=N'ssbDemo'begindrop database ssbDemoendcreate database ssbDemogo1.2 允许 Server Broker-ch
4、eck database broker statesdeclare is_broker_enabled intselect top 1 is_broker_enabled=is_broker_enabled from sys.databases with (nolock where database_id=db_id(N'ssbDemo'if is_broker_enabled<>1begin-Enable SSBalter database ssbDemoset enable_brokeralter database ssbDemoset trustworthy
5、onend1.3 创建 Master Keyuse ssbDemogocreate master keyencryption by password = 'Cw24$g'2. 创建消息use ssbDemogo-Messageif exists (select top 1 1from sys.service_message_types with(nolock where name='HelloWorldRequest' begindrop message type HelloWorldRequest;endgocreate message type HelloW
6、orldRequest VALIDATION=NONEif exists (select top 1 1from sys.service_message_types with(nolock where name='HelloWorldRespone' begindrop message type HelloWorldRespone;endgocreate message type HelloWorldRespone VALIDATION=NONE3. 创建合约-Contractif exists (select top 1 1from sys.service_contracts
7、 with(nolockwhere name='HelloWorldContract'begindrop contract HelloWorldContract;endgocreate contract HelloWorldContract(HelloWorldRequest sent by initiator,HelloWorldRespone sent by target4. 创建队列和基于队列的服务-Queueif object_id('dbo.HelloWorldTargerQueue' is not null and exists(select top
8、 1 1from sys.objects with (nolockwhere object_id=object_id('dbo.HelloWorldTargerQueue'and type='SQ'begindrop queue dbo.HelloWorldTargerQueueendgocreate queue dbo.HelloWorldTargetQueueif exists (select top 1 1from sys.services with(nolockwhere name='HelloWorldRequestService'be
9、gindrop service HelloWorldRequestService;endgocreate service HelloWorldRequestService on queue HelloWorldTargetQueue(HelloWorldContractif object_id('dbo.HelloWorldInitiatorQueue' is not null and exists(select top 1 1from sys.objects with (nolockwhere object_id=object_id('dbo.HelloWorldIn
10、itiatorQueue'and type='SQ'begindrop queue dbo.HelloWorldInitiatorQueueendgoCreate queue dbo.HelloWorldInitiatorQueue if exists (select top 1 1from sys.services with(nolockwhere name='HelloWorldResponseService'begindrop service HelloWorldResponseService;endgocreate service HelloWo
11、rldResponeService on queue HelloWorldInitiatorQueue(HelloWorldContract5. 发送消息( Server Broker 的消息发送,必须在事务中实现)-send messageuse ssbDemogoset nocount ondeclare conversionHandle uniqueidentifierbegin trybegin tran-begin dialog to serverbegin dialog conversionHandlefrom service HelloWorldResponeServiceto
12、service N'HelloWorldRequestService'on contract HelloWorldContractwith encryption=off,lifetime=600;-Send messagesend on conversation conversionHandle message type HelloWorldRequest (N'Hello world'commitend trybegin catch-get the the error infoselect error_message(end catch6. 接受消息(同样消息
13、的接受也必须在事务中)-receive message from raget queueset nocount ondeclare conversionHandle uniqueidentifierdeclare message_body nvarchar(maxdeclare message_type_name sysname-begin transactionbegin transactionwaitfor (receive top (1-only a piece of messagemessage_type_name = message_type_name-Receiving messa
14、ge type,conversionHandle=conversation_Handle-Dialog identifier ,message_body=message_body from HelloWorldTargetQueue-it is a HelloWorldRequsetif message_type_name=N'HelloWorldRequest' beginsend on conversation conversionHandlemessage type HelloWorldRespone(N'Hello from '+servernameend conversation conversionHandleend-commitcommit trango7. 检验7.1 检查目标队列use ssbDemogo-check the target queueselect * from HelloWorldTargetQueue with (nolock -go-convert the message to nvarcharselect cast(message_body as nvarchar(maxfrom HelloWorldTargetQueuego7.2 检查消息接受情况-Che
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 分红权激励方案
- 交通运输专业职业生涯规划书
- 《老年髌骨软化症专科护理|股四头肌训练 + 全套护理措施》
- 糖尿病科专科疾病护理|临床查房专用教学资料
- 湖南省长沙市浏阳市2025届数学四年级上学期期中模拟试题(含解析)
- 行动强化健康教育科学预防传染病小学主题班会课件
- 办公制定与执行的标准化方案
- 湖南省长沙市岳麓区2025届数学四下期中学业水平测试试题含解析
- 湖南省长沙市2025届三上数学期中质量检测模拟试题(含答案)
- 湖南省郴州市第十九中学2025年数学三年级第二学期期中监测试题(含答案解析)
- 2025年行政职业能力测验题库答案解析
- 环保安全知识培训内容
- 2025至2030中国放疗设备行业项目调研及市场前景预测评估报告
- DBJT15-245-2022 广东省城市轨道交通工程设计规范
- 江苏省扬州市仪征市2024-2025学年八年级下学期期末考试数学试卷(含答案)
- 江苏都桐科技有限公司新建锂离子电池用再生黑粉生产及再生磷酸铁锂测试电芯研发项目环评资料环境影响
- 2025年河北省中考英语真题 【含答案、解析】
- 七年级下册地理知识点总结(考点清单)(背记版)七年级地理下学期期末复习(人教2024版)
- 城镇排水管道原位热塑成型法修复工程技术规程
- 包装车间质量培训
- 2024年中国院内外药品市场销售分析报告-医药魔方
评论
0/150
提交评论