biztalk - 具有单独 TimeOutException 处理的 BizTalk Parallel Convoy 无法生成错误消息“致命错误 X1001:未知系统异常”
问题描述
考虑 BizTalk 2016 中并行护航模式的以下基本结构。它是具有 2 个活动接收形状的并行操作。结合由两个活动接收初始化的单个相关集。
现在,当我想要单独的异常处理时出现了我的问题,一个用于左接收,一个用于右接收。所以我在左接收(Scope_1)周围放置了一个超时范围。我已经将该范围包装在另一个范围(Scope_3)中,以捕获超时异常。
现在由于某种原因这是不允许的,我在构建时返回“致命错误 X1001:未知系统异常”。
但是,如果我将 scope_3 包裹在两个活动接收周围,它就会成功构建:
BizTalk 在这种情况下不允许单独的超时异常处理有什么显着区别?
顺便一提:
- 不管我试图捕捉什么类型的异常,或者我的所有范围是否都是长期运行的事务,错误的发生都是一样的。
- 如果我为每个接收设置单独的相关集,则不会发生错误,但这当然不是我想要的,因为那时它不会使其成为并行车队。
- 将范围设置为同步不会影响行为。
解决方案
显着的区别在于,Orchestration 将在收到第一条消息时启动,该消息可能不是 scope_1。因此,在那种情况下不会启动计时器。如果它是scope_1,那么它不会因为你收到它而超时,但它不会因为scope_2而超时。
在这两种情况下都有计时器,确实在两种情况下都设置了超时。
您可以做的是根据您的第二个示例设置超时范围,并设置一个标志以指示接收到哪个标志,并在您的异常块中使用它。
其他选项是初始化相关集的第一个接收形状,然后是第二个接收形状,它具有以下相关性并具有超时。
推荐阅读
- makefile - 带有 2 个可执行文件的 Fortran Makefile
- nginx - 获取 SSL 例程:ssl3_get_record:错误的版本号
- ios - 为什么我在 UITableView 中得到空单元格?
- java - Sentry 不适用于 lombok 日志记录(使用 1.7.30 版 Sentry)
- magento - Magento 2 - 将所有 CSS 文件移动到页脚
- sql - 我收到错误“缺少左括号”
- python - 如何在作为 Python 列表的一部分的字符串中插入字符串变量的值?
- algorithm - 匈牙利算法用户的最佳策略是什么?
- julia - 创建要循环的整数索引的最佳/最有效方法是什么?
- android - Android“绕过用户批准”第二次以编程方式连接到特定 Wi-Fi 网络不起作用