Corda-FlowMonitor-id为X的Flow已等待Y秒以接收来自各方的消息



在我们的Corda网络中,我们与Accounts合作。我们有一个具有定义明确的节点的网络。

为了显示这个问题,想象3个节点,PartyA、PartyB和公证人。我们在PartyA上创建了帐户(例如AccountA(。我们有可以在拥有AccountA作为交易参与者的PartyB执行的流。

现在假设PartyA由于任何原因而停机,或者节点之间的通信不可用。当我为PartyA请求一个新的AccountA密钥时,流在尝试通信时会被卡住,并且不会返回任何异常。这种情况发生在尝试与另一个节点通信的任何情况下,例如,当运行CollectSignaturesFlow或ShareStateAndSyncAccounts以共享帐户状态时。

问题是,在无法与另一个节点通信的情况下,是否有任何配置或机制可以返回异常?

超时可以根据需要管理的位置进行不同的处理。

有流程超时:

当流实现TimedFlow接口并设置isTimeoutEnabled标志未在定义的经过时间内完成,它从初始检查点重新启动。

目前仅用于集群公证人的公证请求

否则,它可以在流中以编程方式完成。我建议您查看Corda文档的这一部分(并发、锁定和等待(,其中有许多建议可以尝试实现。

最新更新