我在nod-red流程中使用composer节点 node-red-contrib-composer
有些情况下节点抛出错误
“尝试调用业务网络时出错。错误:Peer拒绝了 交易 'ce59c38741626ca5dbc1ae7055e0a52297ff99293751f796ed41d40b5cfc59e9' 代码为MVCC_READ_CONFLICT“
我可以在调试控制台中看到此错误但我无法捕获此错误 节点红色中的 catch 节点可用。我认为,在作曲家节点中,使用下面的代码:
//Set hardcoded environment variable to set the path to the library
Environment.SetEnvironmentVariable("ROSLYN_COMPILER_LOCATION", "actual compiler location goes here", EnvironmentVariableTarget.Process);
//Create compiler object
CSharpCodeProvider compiler = new CSharpCodeProvider();
//Clean up
Environment.SetEnvironmentVariable("ROSLYN_COMPILER_LOCATION", null, EnvironmentVariableTarget.Process);
//Use "compiler" variable to actually compile the dynamic code
如何在节点红色中捕获此错误? 我想使用此错误消息以在同一选项卡中触发另一个流。
答案 0 :(得分:1)
除了错误的具体细节之外,您无法使用Catch节点处理此错误的原因是由于编写器节点报告错误的原因。
它使用一个参数调用node.error
,这意味着它已被记录,不会采取进一步的操作。
为了触发Catch节点,对node.error
的调用必须提供第二个参数,该参数是Catch节点应发送的消息对象。
我建议您针对作曲家节点提出一个问题,以便进行此更改。
答案 1 :(得分:0)
MVCC_READ_CONFLICT
之类的错误当前无法由节点红色流中的debug
节点捕获(即写入时间)(仅在调试控制台中为avl)。除非在作曲家node-red mpdule(例如node.error(msg)
)中有node.error("Error",msg)
或类似内容,否则可以使用node-red中的catch
节点来捕获该错误并继续关于重新规划交易的问题,以及之前的MVCC_READ_CONFLICT'。