Нахождение, что мягко заблокированные состояния не имеют активных сеансов потока - PullRequest
0 голосов
/ 24 января 2019

В одной из наших баз данных Corda у нас есть набор состояний с мягкой блокировкой, несмотря на то, что все сеансы потока завершаются.Легко просто установить все это в null в среде разработчика.Однако на производстве это было бы очень опасно, пока узел обрабатывает потоки.Итак, мне интересно, могу ли я получить список активных идентификаторов StateMachine и сопоставить их с идентификаторами софт-блокировки в VAULT_STATES.К сожалению, NODE_CHECKPOINTS не имеет этот идентификатор в качестве поля.

Есть ли способ получить список активных идентификаторов StateMachine?

1 Ответ

0 голосов
/ 24 января 2019

Если вы обращаетесь к узлу через RPC, вы можете использовать stateMachinesFeed.Это возвращает фид данных текущей информации о конечных автоматах, а наблюдаемая будущая конечная машина добавляет / удаляет.

Внутренне вам придется сделать что-то быстрое, что-то вроде:

private val stateMachineManager = serviceHub.getFieldValue("flowStarter")!!.getFieldValue("smm")!! as StateMachineManager

Затем вы можете вызвать что-то вроде track () в StateMachineManager.

...