Corda - FlowMonitor - поток с идентификатором X ждал Y секунд, чтобы получить сообщения от сторон. - PullRequest
0 голосов
/ 03 августа 2020

В нашей сети Corda мы работаем с Аккаунтами. У нас есть сеть с четко определенными узлами.

Чтобы показать проблему, представьте себе 3 узла: PartyA, PartyB и Notary. Мы создали учетные записи (например, AccountA) на PartyA. У нас есть потоки, которые могут выполняться на PartyB, у которого есть AccountA в качестве участника транзакции.

Теперь представьте, что PartyA не работает по какой-либо причине или связь между узлами недоступна. Когда я запрашиваю новый ключ AccountA для PartyA, поток застревает, пытаясь установить связь, и не возвращает никаких исключений. Это происходит в любой ситуации, когда пытается связаться с другим узлом, например, при запуске CollectSignaturesFlow или ShareStateAndSyncAccounts для совместного использования состояний учетной записи.

Вопрос в том, есть ли какая-либо конфигурация или механизм для возврата исключения в тех случаях, он не может связаться с другим узлом?

1 Ответ

0 голосов
/ 04 августа 2020

Таймауты могут обрабатываться по-разному в зависимости от того, где вам нужно управлять им.

Существует flowTimeout :

Когда поток реализует интерфейс TimedFlow и установка флага isTimeoutEnabled не завершается в течение определенного истекшего времени, он перезапускается с начальной контрольной точки.

В настоящее время используется только для запросов нотариального заверения с кластеризованными нотариусами

Или иначе это может выполняться программно в вашем потоке. Я предлагаю вам взглянуть на эту часть документации Corda ( Concurrency, Locking and Waiting ), где есть много предложений, которые вы могли бы попробовать реализовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...