本主题介绍 BizTalk Server 中 EDI 状态报告的已知问题。
如果批处理业务流程在合作伙伴协议管理器之外停止,则批状态报告数据可能不会更新
可以通过参与方的 EDI 属性对话框中的批处理页停用批处理编排实例。 如果这样停用批处理业务流程实例,BizTalk Server 将更新该批的状态报告数据。 但是,如果以另一种方式停止批处理业务流程,例如,通过在 BizTalk Server 管理控制台的“组概述”页上的某个查询页中停止业务流程,则状态报告数据可能不会更新,最终可能会有一个已过期的批处理状态报告。 例如,状态报告可能指示该批仍然处于活动状态,即使批处理业务流程实例已停用。
启用 EDI 状态报告后,需要重启 BizTalk 服务
症状
已启用 EDI 状态报告,但未生成 EDI 状态报告。
可能的原因
激活或停用 EDI 状态报告后,需要重启 BizTalk 服务才能使更改生效。 如果在解决方案中使用 AS2EdiReceive 或 AS2EdiSend 管道,则需要重启 BizTalk 服务和 IIS 服务才能使更改生效。
解决方案
重启 BizTalk 服务(在“计算机管理”对话框中)。 如果在解决方案中使用 AS2EdiReceive 管道或 AS2EdiSend 管道,请重启 IIS 管理服务(使用 iisreset 命令)。
注释
启用 AS2 状态报告时,不需要重启 BizTalk 服务或 IIS 管理服务。
当消息中的 AS2 消息日期时间为空值时,状态报告中的年份将显示为“9999”
如果传入的 AS2 消息中 AS2 消息日期时间字段设置为 Null,则 AS2 状态报告中该消息的日期时间字段将显示年份值“9999”。
如果传入 AS2 消息中的 AS2 消息日期时间字段无法分析(例如 Mon, 2007 年 5 月 21 日 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 消息或以 UNICODE 格式编码的 MDN,并且尝试以文本线格式查看消息,BizTalk Server 将不会完全显示该消息。 之所以发生这种情况,是因为 UNICODE 格式的“00”字节被解释为流的末尾。 但是,如果尝试以二进制线路格式查看消息,BizTalk Server 将完全显示该消息。
当为 AS2 消息激活状态报告(在 AS2 属性对话框的“常规”窗格中)以及启用入站或出站 AS2 或 MDN 消息存储时(在“作为 AS2 消息接收方”窗格或 AS2 属性对话框的 AS2 消息发送方窗格中)时,会出现这种情况。
同时启用 AS2 状态报告和发送端口正文跟踪功能可能会导致错误。
如果同时启用 AS2 状态报告并发送端口正文跟踪,则可能在事件查看器中显示以下错误:“消息引擎在删除一个或多个消息时遇到错误。当发送端口是具有 AS2Send 和 AS2Receive 管道的静态请求响应 AS2 发送端口时,将发生这种情况。 启用以下属性时会发生此情况:
AS2 属性对话框的“常规”窗格中的“激活 AS2 报告”属性。
“将出站编码的 AS2 消息存储在非否认数据库中”属性位于 AS2 属性对话框的“作为 AS2 消息接收方”页面中的 Party。
“发送端口属性”对话框的“跟踪”窗格中的“在端口处理后请求消息”属性。
此问题的解决方法是清除“将出站编码的 AS2 消息存储在非拒绝数据库中”属性或“端口处理后请求消息”属性。 建议禁用“端口处理后请求消息”,以便 AS2 跟踪可以捕获正文信息以及其他用于 AS2 状态报告的信息片段。
升级到 BizTalk 2009 后,EDI 和 AS2 消息上下文属性不可用
升级到 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 本地化版本中,如果错误消息显示为问号字符串,则需要根据作系统语言更改系统区域设置以获取预期的错误消息。 具体步骤因操作系统(OS)而异,但以下步骤可能与您的操作系统类似:
- 转到 控制面板>时钟和区域>区域。
- 选择“管理”选项卡>非 Unicode 程序的语言>更改系统区域设置。
- 选择语言>“确定”>以保存更改。