mirth connect 通过目的地停止消息传播

mirth connect stop message propagation through destinations

我正在使用 Mirth Connect 3.5.0.8232。 我有一个数据库 Reader 作为源连接器和一个 JavaScript 编写器作为目标连接器。我决定在目标中放一些花哨的代码,做四件独立的事情,应该一个接一个地做。基本上我只是写了代码,在我看来它太长太笨拙,所以我决定通过 "Wait for previous destination" 选项将它分成 4 个菊花链的目的地。

问题是:如果其中一个目标发生错误,我该如何中断这个执行链?

我发现了一个 2013 年的 JIRA 问题,它说实际上目标连接器主体中发生的错误不会阻止消息发送到所有其他目标。它指出 2.X 版本行为仍然是最新的,即目标转换器中发生的错误实际上会阻止消息传播。

我尝试在 Destination 主体和 Destination Response Transformer 中抛出错误,在这两种情况下,消息都会继续发送到其他 Destinations。我也尝试过从 Destination body 返回 ResponseFactory.getErrorResponse 但没有成功。我还尝试在 Destination Response Transformer 中将 responseStatus 设置为 ERROR 但无济于事。他们是指正常的 Transformer/Filter 吗?

此外 - 也许我将任务拆分为 4 个不同目的地的特殊解决方案并不是首先创建目的地的原因?我认为文档指出目的地基本上就是目的地这个词所代表的意思。

如果上述情况属实,也许在 Mirth 中有更好的功能组织代码的方法?我认为 JavaScript writer 不允许包含外部 JS 文件 - 即使允许,我更希望所有内容都位于 Channel 本身内并且 exportable/importable 作为单个文件。

谢谢。

是的,当 filter/transformer 抛出错误时,它被认为是真正的 "exceptional",因此消息流停止(不执行同一链中的后续目标)。

如果实际目标调度程序或响应转换器抛出错误,该目标将被标记为错误,但后续目标仍将被执行。

不过,您仍然可以根据需要停止消息流。在您的后续目的地使用过滤器: