EDI 和 AS2 状态报告的已知问题

本主题介绍 BizTalk Server 中的 EDI 状态报告的已知问题。

在合作伙伴协议管理器之外停止批处理业务流程可能无法更新批处理状态报告数据

通过参与方“EDI 属性”对话框的“批处理”页可停用批处理业务流程实例。 如果以此方式停用批处理业务流程,BizTalk Server 将更新该批处理的状态报告数据。 但是,如果以另一种方式停止批处理业务流程(例如,通过从 BizTalk Server 管理控制台的“组概述”页上的某个查询页停止业务流程),则状态报告数据可能不会更新,并且最终可能会生成过期的批处理状态报告。 例如,即使已停用批处理业务流程实例,状态报告也可能指示批处理仍处于活动状态。

启用 EDI 状态报告功能后需要重新启动 BizTalk 服务

症状

已启用 EDI 状态报告功能,但未生成 EDI 状态报告。

可能的原因

激活或停用 EDI 状态报告功能后,需要重新启动 BizTalk 服务,以使更改生效。 如果在解决方案中使用了 AS2EdiReceive 或 AS2EdiSend 管道,则需要重新启动 BizTalk 服务和 IIS 服务,以使更改生效。

解决方法

重新启动 BizTalk 服务(在“计算机管理”对话框中)。 如果在解决方案中使用 AS2EdiReceive 管道或 AS2EdiSend 管道,则使用 iisreset 命令) (重新启动 IIS 管理员服务。

注意

启用 AS2 状态报告功能后无需重新启动 BizTalk 服务或 IIS 管理服务。

当消息中的 AS2 消息日期时间为空值时,状态报告的年份将显示“9999”

如果传入 AS2 消息中的“AS2 消息日期时间”字段设置为 Null,那么在 AS2 状态报告中,该消息的“AS2 消息日期时间”字段中的年份将显示为值“9999”。

如果传入 AS2 消息中的“AS2 消息日期时间”字段无法解析(如 Mon, 21 May 2007 10:08:28 NZST),那么在 AS2 状态报告中,该消息的“AS2 消息日期时间”字段将设置为当前时间。

卸载 BAM 工具后仍配置有状态报告功能

要安装 EDI 状态报告功能,您必须安装 BAM 工具。 但是,如果已卸载 BAM 工具,则仍配置有状态报告功能。 这是设计的结果。

删除 BAM 工具后,无法再通过用户界面搜索状态报告表。 但是,如果已启用状态报告功能,BizTalk Server 仍将在状态报告表中创建记录。

状态报告 UI 中只有一个 EDI 交换与 AS2 消息关联

如果一则 AS2 消息包含多个 EDI 交换,并且您尝试显示 AS2 消息中多个 EDI 交换的状态,那么交换/ACK 状态报告中将只显示最后一个 EDI 交换。 此外,AS2/MDN 状态报告中的 “EDI 交换控制否 ”字段将仅显示最后一个交换控制编号。 (该交换控制编号将 AS2 消息与其 EDI 交换负载关联起来。)

AS2 消息中所有 EDI 交换的数据都保存在状态报告数据库中。 如果 控制 ID 等于 All 子句是状态报告查询,则可以在交换/ACK 状态报表的 AS2 消息中显示所有交换。 这还可能显示不属于 AS2 消息的其他交换;但是,通过查看其他字段(如“发送方”、“接收方”和“交换日期时间”),您可以确定 AS2 消息中有哪些 EDI 交换。

从组中删除 BAM 工具将阻止您查看 EDI 或 AS2 状态报告

如果从组中删除 BAM 工具,尝试查看 EDI 或 AS2 状态报告将导致错误。 出现一个此类错误表示未找到 bts_GetBatchStatusRecords 存储过程。 如果在尝试查看 EDI 或 AS2 状态报告时出现错误,请验证 EDI 和 AS2 的组、运行时和 BAM 工具的配置是否正确。

如果取消配置 BAM 工具(而不是仅删除),则可以避免此问题。 如果取消配置 BAM 工具,系统将提示您取消配置 EDI/AS2 相关功能。 如果删除 BAM 工具,则不会提示您执行此操作。

升级后,如果未配置 BAM 工具,状态报告功能将不工作

要使 EDI 和 AS2 状态报告功能工作,必须配置 BAM 工具。 如果将 BizTalk Server 2006 的安装升级到后续版本,并且未在升级过程中配置 BAM 工具,则升级后的安装上的 EDI/AS2 状态报告功能将无法正常工作。

如果要在升级到 BizTalk Server 后使用状态报告,请确保在执行升级之前配置 BAM 工具。

如果在执行升级后状态报告功能不工作,请在升级日志中确定在升级之前是否配置了 BAM 工具。 如果没有,可以配置 BAM 工具,然后部署 drive>:\Program Files\Microsoft BizTalk Server 中 EdiStatusReportingActivityDefs.xml 文件<中包含的 BusinessMessageJournal BAM 活动。

禁用事务集存储会影响激活的批处理,但启用存储则不会产生任何影响

如果在批处理业务流程处于激活状态时禁用事务集存储,更改将立即生效。 BizTalk Server 将在启用存储的情况下存储批处理的事务集,但不会在禁用存储后存储事务集。 您可以禁用事务集存储,方法是:在“EDI 属性”对话框的“常规”窗格中清除“存储事务集/负载以用于报告”属性。

但是,如果在禁用事务集存储的情况下激活批处理业务流程实例,然后再启用该存储,则不会为创建的批处理存储任何事务集。

无法以文本传输格式完全显示 UNICODE AS2 消息

如果 BizTalk Server 处理的 AS2 消息或 MDN 是以 UNICODE 格式编码的,并且您尝试以文本传输格式查看该消息,BizTalk Server 将无法完全显示该消息。 出现此情况的原因是 UNICODE 格式的“00”字节被解释为流的末尾。 但是,如果以二进制传输格式查看该消息,BizTalk Server 将完全显示该消息。

当在“AS2 属性”对话框的“常规”窗格中激活 AS2 消息的状态报告功能,且在“AS2 属性”对话框的“作为 AS2 消息接收方的参与方”窗格或“作为 AS2 消息发送方的参与方”窗格中启用入站或出站 AS2 或 MDN 消息的存储时,将出现此问题。

同时启用 AS2 状态报告功能和发送端口正文跟踪可能导致错误

如果同时启用 AS2 状态报告和发送端口正文跟踪,事件查看器中可能会显示以下错误:“消息引擎在删除一个或多个消息时遇到错误。当发送端口是具有 AS2Send 和 AS2Receive 管道的静态请求响应 AS2 发送端口时,将发生这种情况。 并且已启用下列属性:

  • “AS2 属性”对话框的“常规”窗格中的“激活 AS2 报告”属性。

  • “AS2 属性”对话框的“作为 AS2 消息接收方的参与方”窗格中的“将编码后的出站 AS2 消息存储在不可否认数据库中”。

  • “发送端口属性”对话框的“跟踪”窗格中的“端口处理后请求消息”属性。

    此问题的解决办法是清除“将编码后的出站 AS2 消息存储在不可否认数据库中”属性或“端口处理后请求消息”属性。 建议您禁用“端口处理后请求消息”,以使 AS2 跟踪捕获正文信息以及 AS2 状态报告中的其他信息。

EDI 和 AS2 消息上下文属性在升级到 BizTalk 2009 后不可用

升级到 BizTalk Server 后,在升级发生之前收到的任何 EDI 或 AS2 消息的状态报告中不会显示任何上下文属性。 升级后收到的消息将正确显示上下文属性。

EDI 和 AS2 上下文属性集合没有作为消息的一部分存储在之前版本的 BizTalk Server 中,并且在升级后不可用。 升级到 BizTalk Server 后,AS2 上下文属性将存储为消息的一部分,但 EDI 上下文属性不是。

已接收文档的交换日期可能在状态报告中显示错误的年份

如果收到的文档以 YYMMDD 格式指定日期,BizTalk Server使用以下逻辑来确定年份值:

  • 如果 YY 大于或等于 75,则年份将显示为 19YY。

  • 如果 YY 小于 75,则年份将显示为 20YY。

    例如,如果传入消息的 ISA09 的值包含 991113,则状态报告会将日期显示为 11/13/1999。

错误消息可能会显示为一个问号字符串。

在 BizTalk Server 本地化版本中,如果错误消息显示为一个问号字符串,您需要根据操作系统语言更改系统区域,才能获取所需的错误消息。 具体步骤因操作系统 (操作系统) 而异,但以下步骤可能与操作系统类似:

  1. 转到“控制面板>锁和区域>区域”。
  2. 为非 Unicode 程序>选择“管理”选项卡“>语言”“更改系统区域设置”。
  3. 选择语言 >“确定>”以 保存更改。

另请参阅

EDI 和 AS2 解决方案的疑难解答
EDI 和 AS2 状态报告