运行 BizTalk 故障消息路由 ESB 处理示例

Microsoft BizTalk 失败的消息路由 ESB 处理示例演示了如何使用 Microsoft BizTalk ESB 工具包异常管理框架作为通用机制来管理、序列化和呈现在 BizTalk Server 中的所有条件下发生的异常。 这包括 BizTalk 失败消息路由机制生成的异常,以及异常管理框架从业务流程中生成的错误消息。

BizTalk 失败消息路由机制是BizTalk Server的错误处理工具;通过使用它,设计器可以指定自动处理消息传送失败,以替代传统 (现在默认) 将失败消息放入“挂起”队列的行为。 这种自动处理会将错误消息路由到任何订阅路由目标,例如发送端口或业务流程。 错误消息是原始消息的克隆,其中所有先前升级的属性都已降级,并与特定消息传送失败相关的选定属性提升到消息上下文中。

若要在接收端口或发送端口上启用 BizTalk 失败消息路由机制,请选中“检查启用失败消息路由”框,如图 1 所示。

已启用

图 1

启用 BizTalk 失败消息路由机制

但是,对于业务流程中发生的错误或故障,没有类似的机制。 相反,业务流程的异常处理程序中的代码可以利用异常管理框架 API 来模拟 BizTalk 失败消息路由机制的功能。

在此示例中,名为 EAIProcess.RequestPort_FILE 的接收位置选取复制到位置 \Source\Samples\Exception Handling\Test\Filedrop\EAIProcess.RequestPort 的文件。

此外,还有一个名为 ALL 的通用发送端口。Exceptions_FILE配置为使用作为异常管理框架的一部分安装的 GlobalFaultProcessor 管道。 此端口订阅系统中发生的所有异常,包括 BizTalk 失败的消息路由消息和 ESB 错误消息,如图 2 所示。

发送端口

图 2

ALL。针对所有类型的失败或异常发送端口订阅的异常

异常管理框架将所有异常规范化为单个格式,并使用 Microsoft InfoPath 处理指令将其序列化到位置 \Source\Samples\Exception Handling\Test\Filedrop\All_Exceptions。

安装

所有异常管理示例使用相同的核心服务和 BizTalk 应用程序项目集。 因此,只需安装一次异常管理示例项目,才能运行所有异常管理示例。 有关如何安装异常管理示例的信息,请参阅 安装异常管理示例

运行示例应用程序

运行 BizTalk 失败的消息路由 ESB 处理示例

  1. 首次运行此示例之前,请确保接收位置和发送端口 URL 指向 \Source\Samples\Exception Handling\Test\Filedrop 文件夹中的相应目录。 接收位置应指定文件夹 EAIProcess.RequestPort,发送端口 URL 应指定文件夹All_Exceptions。

  2. 如果 GlobalBank.ESB 应用程序尚未运行,请使用 BizTalk 管理控制台启动它。

  3. 将文件夹 \Source\Samples\Exception Handling\Test\Data 中名为 FlatFileReceive_in.txt 的文件复制到 \Source\Samples\Exception Handling\Test\Filedrop 文件夹) 中名为 EAIProcess.RequestPort (的接收位置文件夹中。

  4. 此消息是一个文本文件,它将导致异常。 在 \Source\Samples\Exception Handling\Test\Filedrop 文件夹) 打开名为 All_Exceptions (的文件夹,然后双击错误消息以使用相应的模板将其打开到 InfoPath 中。 你将看到,ESB 异常处理机制适当地序列化内容,以允许 InfoPath 呈现它。

  5. 接下来,将名为 soapmessage[1].xml 的文件从文件夹 \Source\Samples\Exception Handling\Test\Data 复制到 EAIProcess.RequestPort 接收位置文件夹中。

  6. 此消息是包含 CDATA 节的 XML 文档,将导致异常。 打开All_Exceptions输出文件夹,然后双击错误消息将其打开到 InfoPath 中。 你将看到 ESB 异常处理机制相应地序列化此内容,以允许 InfoPath 呈现它。

  7. 最后,将名为 Csqzav01.pdf 的文件从文件夹 \Source\Samples\Exception Handling\Test\Data 复制到 EAIProcess.RequestPort 接收位置。

  8. 此消息是 PDF 文件,将导致异常。 打开All_Exceptions输出文件夹,然后双击错误消息以在 InfoPath 中将其打开。 你将看到 ESB 异常处理机制序列化,Base-64 对内容进行编码以允许 InfoPath 呈现内容。