消息的生命周期

下图从消息传送方面对 BizTalk Server 结构进行了高度概括:

BizTalk Server消息体系结构

在此简化视图中,通过在给定接收端口中定义的接收位置接收消息。 此消息由接收位置处理,然后被发布到 MessageBox 数据库,这是 BizTalk Server 的主要持久化和路由机制。 MessageBox 评估活动的订阅,并将消息路由到具有匹配订阅的业务流程和发送端口。 业务流程可以处理消息,并通过 MessageBox 将消息发布到发送端口,从发送端口将消息推送到最终目标。

以下是 BizTalk Server 消息处理中涉及的关键组件:

接收端口和接收位置

接收端口是一个或多个接收位置的集合,用于定义特定入口点进入BizTalk Server。 接收位置是单个终结点的配置, (用于接收消息的 URL) 。 该位置包含接收适配器和接收管道的配置信息。 适配器负责接收消息的传输和通信部分。 示例包括 FILE 适配器和 SOAP 适配器,这两种适配器都从不同类型的源接收消息。 接收管道负责准备消息以便将消息发布到 MessageBox 中。 管道是按顺序执行的一系列组件,每个组件提供对消息的特定处理,例如解密/加密、分析或验证。 有关管道、接收端口和接收位置的详细信息,请参阅 项目

发送端口和发送端口组

发送端口是发送管道和发送适配器的组合。 发送端口组是发送端口的集合,作用很像电子邮件分发列表。 发送到发送端口组的消息将被发送到该组中的所有发送端口。 发送管道用于准备来自 BizTalk Server 的消息以将其传输到其他服务。 发送适配器负责使用特定协议(如 SOAP 或 FTP)实际发送消息。 有关发送端口和发送端口组的详细信息,请参阅 项目

业务流程

业务流程可以通过 MessageBox 订阅(接收)和发布(发送)消息。 此外,业务流程可以构造新的消息。 使用已讨论过的订阅和路由机制接收消息。 在填入业务流程的订阅后,将激活新的实例并传送消息;对于实例订阅,如有必要,将解除对该实例的冻结,然后传送消息。 从业务流程发送消息时,将消息发布到 MessageBox 的方式与到达接收位置的消息插入数据库以用于路由的方式相同。 有关业务流程的详细信息,请参阅 项目

MessageBox 数据库

BizTalk Server 中发布/订阅引擎的核心是 MessageBox 数据库。 MessageBox 由两个组件构成:一个或多个 Microsoft SQL Server 数据库和消息代理。 SQL Server 数据库为许多对象(包括消息、消息属性、订阅、业务流程状态、跟踪数据和用于路由的主机队列)提供持久化存储。 有关 MessageBox 数据库的详细信息,请参阅 MessageBox 数据库

主机和主机实例

主机是 Microsoft Windows 进程的逻辑表示形式,它执行BizTalk Server项目(如发送端口和业务流程)。 主机实例是特定服务器上的主机的物理表示形式。 主机可以是进程内主机(意味着它由 BizTalk Server 所拥有和管理),也可以是独立的主机(意味着 BizTalk Server 代码运行在不由 BizTalk Server 所控制的进程中)。 独立主机的一个典型示例为 Internet 信息服务 (IIS),它承载了 HTTP 和 SOAP 适配器的接收功能。 主机是为整个 BizTalk Server 组(即共享配置、MessageBox 和端口等的 BizTalk Server 集合)定义的。 有关主机和主机实例的详细信息,请参阅 实体

保存消息正文

保存消息正文有三种方式。

从管理 MMC 组中心页查询

此方法仅针对 MessageBox 数据库中的消息。

  • 查看服务实例。

  • 打开“ 服务实例详细信息 ”对话框。

  • 单击 “消息”选项卡 以查看与此实例关联的消息列表。

  • 右键单击邮件,然后单击“ 保存”。

    -或-

  • 双击邮件以在 邮件查看器中将其打开,然后单击“ 保存”。

从操作 OM

  • 使用 GetInstance 检索服务实例对象。

  • 使用 Instance.Messages [ ] 枚举服务实例当前引用的所有消息。

  • 使用 Message.BodyPart [ ]Message.Context [ ] 等消息对象的方法访问并保存它。

从 DTA

  • 使用 GetTrackedInstanceGetTrackedmessage API 调用从 DTA 检索消息。

另请参阅

运行时体系结构