如何测试和调试适配器

调试运行时问题通常需要综合的解决方法。 必须从多个数据源收集数据,例如软件跟踪、性能计数器、事件日志条目、Windows 管理规范 (WMI) 事件和调试源代码,以确定问题或软件错误的根源。

由于接收适配器和发送适配器运行在 BizTalk 服务的地址空间中,因此需要将调试器连接到 BtsNtSvc.exe 进程,以调试适配器。 但对于独立接收适配器,需要将调试器连接到该适配器所在的进程。

应使用跟踪代码检测适配器运行时代码,以捕获运行时诊断信息,从而排除故障。 使用 Microsoft Enterprise Instrumentation Framework (EIF) 可实现这一目的。 通常,按照不同的严重度级别添加跟踪语句是很有用的,例如,仅跟踪错误情况、跟踪错误和警告、跟踪错误、警告和信息的语句。 而且,更为复杂的适配器可能有独立的子系统,对这些子系统需要进行互不影响的跟踪。 例如,对于有一个网络子系统和一个核心子系统的适配器,在某些情况下,如果对其全部子系统进行跟踪,可能会产生过量的“噪音”。

为了在运行时捕获速率和值,从而获得适配器运行时行为的更多信息,还应添加性能计数器。 例如,适配器可以发布每个终结点所发送的原始消息数的性能计数器和每秒发送消息速率的性能计数器。

对于某些严重错误,WMI 事件可能也会很有用。 例如,如果适配器遇到严重错误,导致其关闭某个接收位置,则触发 WMI 事件可以使管理员能够侦听该事件并采取适当的措施。

适配器测试

开发自定义 BizTalk Server 适配器时,请记住应按照企业软件质量标准来开发。 这意味着在交付前,您需要对该适配器进行彻底的测试。 虽然不能详细完整地说明应如何测试适配器,但本部分会概述需要测试的内容。 通常,适配器等运行时代码的测试应涵盖三大类:功能测试、压力测试和性能测试。

功能测试

应对适配器功能的所有可能情况进行测试,包括正向测试和反向测试。 正向测试应包括以下方面,但不局限于这些方面:

  • 接收 () 的消息

  • 传输消息

  • 使用动态端口传输消息

  • 禁用接收位置

  • 更新配置

  • 确保接收适配器和发送适配器在服务时段内都有效

  • 确保事务性适配器的事务完整性

    反向测试应包括以下方面,但不局限于这些方面:

  • () 收到错误消息

  • 接收既有正确消息又有错误消息的混合消息批

  • 传输失败

  • 重试成功

  • 重试失败,转至下一个传输成功

  • 转至下一个传输失败,挂起消息

  • 传输混合消息批

  • 数据库故障转移

压力测试

适配器是运行时组件,因此应满足运行时软件的严格要求。 压力测试通常要求在一定负载下运行一段时间。 此外,还应进行高压力下和低压力下的平均无故障时间测试,其中适配器在一定负载下运行一段规定的时间。

大致上,适配器的高压力测试约为 72 小时,通过适配器的消息使 CPU 使用率达到大约 80% 到 90%。 对于低压力测试,CPU 使用率应在 120 小时内维持在大约 30% 到 40% 之间。

性能测试

开发适配器的过程中,始终要考虑其性能。 发布适配器前,应对其性能进行验证。 确保适配器性能可向上扩展和向外扩展是很重要的;即增加 CPU 数量可改善性能,增加计算机同样也可改善性能。 分析代码有助于消除性能瓶颈。