适配器变量

任何自定义适配器都有大量变量需要处理。 赋给这些变量的值将影响适配器实现的自定义逻辑。 特定于传输或特定于应用程序的配置属性还有助于支持您的解决方案。 下表列出了这些常见变量。 您必须确定是否要在您的自定义适配器中支持每个变量。

对于每个选项,您的适配器必须实现特定的接口。 下表列出了各个变量选项以及有关链接,这些链接提供与编写适配器代码来支持的您的设计决策有关的详细信息。

适配器变量 说明
通信方向 收到。 接收适配器侦听传入消息的特定于协议的地址。 在收到某一消息时,接收适配器将该消息移交给消息引擎,消息引擎将该消息经过接收管道传递,最终保存在 MessageBox 数据库中。

Send。 在消息引擎需要将某一消息发送到特定终结点时,会将该消息传递到发送管道。 发送适配器接受来自发送管道的消息,并将该消息发送到发送端口。
适配器宿主 进程内。 进程内适配器在 BizTalk 服务进程中创建并托管,BTSNTSvc.exe。 如果主机为 64 位,则进程命名为 BTSNTSvc64.exe。 为简单起见,我们不会在本部分中再次提及 64 位进程。

这意味着,BizTalk Server创建和管理适配器的生存期,使用传输代理对其进行初始化,为适配器请求提供服务,并在服务关闭时终止适配器。

对于进程内适配器,BizTalk Server还会在运行时向适配器提供配置信息,包括处理程序、发送端口和接收位置配置。 此外,配置的各个方面(如服务时段)由消息引擎处理,因此适配器不需要确保接收位置或发送端口位于服务时段之外。

请注意,所有发送适配器都是进程内适配器,必须在 BTSNTSvc.exe 进程中运行。

隔离。 适配器是在不属于BizTalk Server运行时的独立主机中创建的。 独立适配器的一个示例是 HTTP 接收适配器,该适配器在 Internet Information Services (IIS) 的进程空间中运行。

IIS 进程模型使 IIS 管理 ASP.NET 应用程序和 ISAPI 扩展的生存期。 当 BizTalk Server 无法管理适配器的生存期时,适配器称为独立适配器。

由于 BizTalk Server 不管理独立适配器的实例化,因此适配器必须创建自己的传输代理,并将自身注册到该传输代理。

请注意,BizTalk Server体系结构消除了不必要的进程间通信。 由于独立适配器和 BizTalk 堆栈位于同一进程中,因此当适配器调用消息传送引擎时,没有进程间通信。 唯一的进程间通信是消息引擎和数据库之间的通信,这是不可避免的。

COM+ 应用程序无法托管以非托管代码编写的发送适配器。
消息交换模式 单向。 消息为传入或传出。

请求-响应 (双向) 请求-响应适配器始终是接收适配器。 请求响应接收适配器从客户端接收请求消息,并将消息提交到BizTalk Server。 BizTalk Server处理请求消息后,它会将响应消息发送回适配器。 然后,适配器将响应消息传输回客户端。

请求-响应 (双向) 请求-响应适配器始终是发送适配器。 要求响应发送适配器将 BizTalk Server 的请求消息发送到目标,等待响应消息,然后将响应消息提交回 BizTalk Server。
发送端口绑定 动态发送端口和接收位置。 动态绑定中使用的发送端口或接收位置的 URI 变量在运行时确定。

静态发送端口和接收位置。 发送端口或接收位置的 URI 变量是静态的,是在运行时之前配置的。
同步发送适配器与异步发送适配器 同步发送适配器。 执行发送操作时,消息引擎会阻止传输代理线程,直到它发送了一批消息并返回。 传输代理在传输、重试、挂起或移动到下一个操作完成后处理消息删除。

异步发送适配器。 异步发送适配器不会阻止传输代理线程,而是在执行发送操作时使用单独的线程。 与同步适配器不同,此适配器必须实现所有删除和重试逻辑本身;传输代理不处理逻辑。

与发送同步消息的适配器相比,发送异步消息的适配器BizTalk Server性能更好。 这是因为线程花费大量时间等待入站或出站操作完成。 因为消息引擎与 CPU 高度相关,所以,阻止消息引擎线程将会降低适配器的性能。

强烈建议使用异步传输,并提高性能。
异步接收适配器 所有接收适配器都是异步的。 这意味着,当适配器将新消息提交到 BizTalk 消息传送引擎时,它不会等待它们完全处理后再返回。
事务支持 事务适配器。 支持消息的事务发送和接收。 在发送端,只有异步批处理发送适配器支持事务。

非事务性适配器。 不接收或发送显式事务范围内的消息的适配器。 许多适配器是非事务性的,因为它们向/从不支持事务的系统(如 Windows 文件系统)发送。
批处理支持的发送适配器与批处理不支持的发送适配器 批处理支持的适配器。 发送适配器可以分批操作处理消息。

所有适配器都可以收集所有可供提交的消息,然后将其一次性提交到 MessageBox 数据库,从而减少必要的数据库更新数。 在某些情况下,这意味着批的长度为 1。 同样,发送适配器会收集可用于发送的所有消息,提取它们,然后一次性将它们发送到目标。

通常,BizTalk Server将批处理视为数据库更新的工作单元。 在同一批中,适配器可以提交单向、请求-响应和请求-响应消息;挂起消息;删除消息;请求重试消息进行传输;或请求将消息移动到备份传输。 应尽可能使用批量传输。

发送和接收适配器都可以批处理,但只有批处理异步发送适配器支持事务。

不支持批处理的适配器。 每条消息都需要对服务器进行独立调用。
批处理支持的接收适配器 所有接收适配器都支持批处理。
动态与静态设计时适配器配置 动态适配器设计时。 若要使适配器支持动态设计时配置,必须开发自定义用户界面 (UI) 才能使用“添加适配器元数据向导”。 此接口允许用户选择要添加到 BizTalk 项目的架构,并通过 Web 服务描述语言 (WSDL) 文件返回其服务说明。 适配器提供自定义 UI 来获取架构。 通过“添加适配器元数据向导”导入服务时,除了架构外,还会向 BizTalk 项目添加端口类型、消息类型和业务流程。

有关详细信息,请参阅 静态 Design-Time 适配器配置

静态适配器设计时。 对于支持静态设计时配置的适配器,可以实现标准接口,以允许添加适配器元数据向导选择要添加到 BizTalk 项目的架构。 BizTalk 适配器框架为适配器提供 UI。

有关修改示例文件适配器的信息,请参阅 动态 Design-Time 适配器配置
传输适配器与应用程序适配器 传输适配器。 传输适配器支持特定协议,并且不使用架构。 在 12 个本机适配器中,有 9 个是传输适配器:MSMQ、MQ 系列、文件、FTP、HTTP、SMTP、POP3 和 SOAP。

应用程序适配器。 应用程序适配器使用数据架构将数据发送到指定的应用程序。 在本机适配器中,有两个是应用程序适配器:Windows SharePoint Services 和 SQL。

有关在您的自定义适配器代码中实现的接口的信息,请使用下表中的链接,了解您计划创建的适配器的类型。 在某些情况下,您必须结合使用列出的接口,用列出的接口满足一个要求,用其他页上列出的接口满足另一个要求。

变量 更多信息
发送适配器 实例化和初始化发送适配器
同步 同步发送适配器的接口
异步 异步发送适配器的接口
同步批处理支持 支持同步批处理的发送适配器的接口
异步批处理支持 支持异步批处理的发送适配器的接口
事务异步批处理支持 支持事务性异步批处理的发送适配器的接口
Solicit-response 要求-响应发送适配器的接口
接收适配器 实例化和初始化接收适配器
常规 进程内接收适配器的接口
隔离 独立接收适配器的接口
批处理支持 支持批处理的接收适配器的接口
事务批处理支持 支持批处理的事务性接收适配器的接口
同步请求-响应适配器 同步请求-响应接收适配器的接口

另请参阅

开发自定义适配器
使用适配器
适配器示例 - 开发