首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从终端运行节点时获取"java.lang.IllegalStateException:Was期望在当前链上查找事务集“

从终端运行节点时获取"java.lang.IllegalStateException:Was期望在当前链上查找事务集“
EN

Stack Overflow用户
提问于 2019-07-04 14:56:37
回答 1查看 75关注 0票数 0

堆栈溢出上有一个question,但在我的示例中,我从控制台运行节点:deployNodesrunnodes。所以没有StartedMockNode类可以使用transaction{}函数。

它有什么问题,我怎么能修好它?

下面是引发异常的方法

代码语言:javascript
复制
serviceHub.withEntityManager {
    persist(callbackData)
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-04 15:21:13

和海克一起在斯拉克上进行了调试。

DB事务由corda处理。这些事务只在两个点生成。在节点启动期间,corda服务可以调用数据库查询和插入以及流的内部。

在这个场景中,数据库是从节点启动外部访问的,而在流调用期间不是这样。

为了避免这种情况,需要创建一个处理导致错误的db操作的新流。db操作仍然可以保存在corda服务中,但必须从流中调用。

此流程不需要响应程序。应该用@StartableByService对其进行注释,而不应该需要@InitiatingFlow (需要对此进行双重检查)。call的内容只需调用db操作并将结果返回给调用者。

TLDR -所有db操作必须在流内部或节点启动期间调用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56890476

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档