当 SWIFT 反汇编程序将来自入站批处理的消息发布到 MessageBox 数据库时,反汇编程序使用适用于 SWIFT 的特殊 Microsoft BizTalk 加速器标记邮件, (A4SWIFT) 特定于批处理消息的升级属性。 这些属性提供上下文信息,例如消息来自哪个批、该消息在批处理中的序号位置、A4SWIFT保留了哪些部分,等等。
A4SWIFT为批处理消息设置以下升级属性:
A4SWIFT_BatchId
A4SWIFT_IsMessageHeaderValued
A4SWIFT_IsMessageTrailerValued
A4SWIFT_NumberOfParts
A4SWIFT_PosInBatch
有关这些属性和其他升级属性的信息,请参阅 A4SWIFT_* 提升的属性。
批处理期间失败
当 SWIFT 反汇编程序在批处理 (入站 解压缩设置为 True) 期间遇到 (分析或验证) 消息失败时,其行为取决于批处理配置,如下所示:
对于批处理 (入站取消批处理 设置为 True) 并且启用了碎片 (碎片 设置为 True) ,反汇编程序会将失败的消息分别发布到 MessageBox 数据库,并在升级的属性和序列化 的 ErrorCollection XML 中追加相应的错误信息。 如果反汇编程序在批处理 ((即反汇编程序无法使用) 的任何指定架构分析的数据)结束时发现意外数据,则反汇编程序会将此意外数据包含在批处理的最后一条消息中,并将其标记为分析失败。 如果反汇编程序在处理过程中遇到严重错误,则反汇编程序会将导致致命错误的消息以及所有数据作为单个消息发布到交换末尾。 反汇编程序不会在发生严重错误后对消息进行碎片处理。
对于批处理 (入站取消批处理 设置为 True) 且已禁用碎片 (碎片 设置为 False) ,反汇编程序会将失败的消息分别发布到 MessageBox 数据库,并在升级的属性和序列化 的 ErrorCollection XML 中追加相应的错误信息。 此外,反汇编程序将包含一个或多个失败消息的整个批处理 (发布为单个消息,) (输入) 的确切副本。 反汇编程序使用 A4SWIFT_Failed 提升属性集 True 标记它,以指示批包含一个或多个失败的消息。 反汇编程序还会将序列化 的 ErrorCollection XML 附加到未分段的批处理,该批表示批处理中单个消息中遇到的所有错误的串联。 若要从批处理中的失败消息中发现每个消息的错误详细信息,必须通过关联A4SWIFT_BatchId) ,从 MessageBox 数据库 (检索单个失败消息,并提取每个失败消息的 ErrorCollection XML。 如果反汇编程序在批处理 ((即反汇编程序无法使用任何指定的架构) 分析的数据)结束时发现意外数据,则反汇编程序会将意外数据与整个失败的批处理 (包括,因为反汇编程序逐字) 将其发布到 MessageBox 数据库,并将其标记为由于意外数据而分析失败。
对于非批处理方案, (入站取消批处理 设置为 False) ,反汇编程序始终按预期将失败的消息单独发布到 MessageBox 数据库。
有关A4SWIFT失败/错误提升属性和 ErrorCollection 对象的详细信息,请参阅 使用失败的消息订阅。