第 1 课:创建会话对象

新建日期: 2007 年 9 月 15 日

在本课中,您将学习如何生成使数据库支持数据库中某个会话的全部对象。

过程

启用 Service Broker 并切换到 AdventureWorks 数据库

  1. 复制以下代码并粘贴至查询编辑器窗口中。 然后,运行代码以确保在 AdventureWorks 数据库中启用了 Service Broker,并将上下文切换到该数据库。

    USE master;
    GO
    ALTER DATABASE AdventureWorks
          SET ENABLE_BROKER;
    GO
    USE AdventureWorks;
    GO
    

创建消息类型

  1. 复制以下代码并粘贴至查询编辑器窗口中。 然后,运行代码以创建会话的消息类型。 因为经常跨数据库引擎的多个实例引用 Service Broker 对象,所以大多数 Service Broker 对象都指定 URI 格式的名称。 这有助于确保这些对象在多个计算机之间都是唯一的。 这两个消息类型都指定 Service Broker 将只验证消息是否为格式正确的 XML 文档,而不会根据特定架构验证 XML。

    CREATE MESSAGE TYPE
           [//AWDB/1DBSample/RequestMessage]
           VALIDATION = WELL_FORMED_XML;
    CREATE MESSAGE TYPE
           [//AWDB/1DBSample/ReplyMessage]
           VALIDATION = WELL_FORMED_XML;
    GO
    

创建约定

  1. 复制以下代码并粘贴至查询编辑器窗口中。 然后,运行该代码以创建会话的约定。 该约定指定使用它的会话必须将 //AWDB/1DBSample/RequestMessage 类型的消息从发起方发送至目标,并将 //AWDB/1DBSample/ReplyMessage 类型的消息从目标发送至发起方。

    CREATE CONTRACT [//AWDB/1DBSample/SampleContract]
          ([//AWDB/1DBSample/RequestMessage]
           SENT BY INITIATOR,
           [//AWDB/1DBSample/ReplyMessage]
           SENT BY TARGET
          );
    GO
    

创建目标队列和服务

  1. 复制以下代码并粘贴至查询编辑器窗口中。 然后,运行该代码以创建用于目标的队列和服务。 因为队列是以类似于表和视图的方式从同一数据库中进行引用,因此,队列名称的格式类似于表名称或视图名称的格式。 CREATE SERVICE 语句将该服务与 TargetQueue2DB 关联起来。 因此,所有发送至该服务的消息都将接收到 TargetQueue2DB 中。 CREATE SERVICE 还指定只有使用先前创建的 //AWDB/1DBSample/SampleContract 的会话才能将该服务用作目标服务。

    CREATE QUEUE TargetQueue1DB;
    
    CREATE SERVICE
           [//AWDB/1DBSample/TargetService]
           ON QUEUE TargetQueue1DB
           ([//AWDB/1DBSample/SampleContract]);
    GO
    

创建发起方队列和服务

  1. 复制以下代码并粘贴至查询编辑器窗口中。 然后,运行代码以创建用于发起方的队列和服务。 因为没有指定约定名称,因此没有其他服务能将此服务用作目标服务。

    CREATE QUEUE InitiatorQueue1DB;
    
    CREATE SERVICE
           [//AWDB/1DBSample/InitiatorService]
           ON QUEUE InitiatorQueue1DB;
    GO
    

后续步骤

您已将 AdventureWorks 成功配置为支持 //AWDB/1DBSample/InitiatorService//AWDB/1DBSample/TargetService 之间的会话。 接下来,您将完成使用该配置的会话。 请参阅第 2 课:启动会话和传输消息

请参阅

其他资源

ALTER DATABASE (Transact-SQL)
CREATE MESSAGE TYPE (Transact-SQL)
CREATE CONTRACT (Transact-SQL)
CREATE QUEUE (Transact-SQL)
CREATE SERVICE (Transact-SQL)
会话体系结构
服务体系结构

帮助和信息

获取 SQL Server 2005 帮助