【问题标题】:Error in running network bootstrapper on Corda Enterprise 3在 Corda Enterprise 3 上运行网络引导程序时出错
【发布时间】:2019-03-13 02:00:56
【问题描述】:

我在使用 SQL Server 设置的 Corda Enterprise 3.1 上运行网络引导程序时遇到错误。迁移 SQL 成功运行,并在 SQL Server 上设置的架构中创建了新表。

您能否建议可能是什么问题?我注意到我们的数据库名称中有“-”字符。会有问题吗?

[错误] 2018-10-05T06:17:52,269Z [main] internal.Node.run - 异常 在节点启动期间{} javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException:无法提取 结果集 在 org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1419) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.Query.getResultList(Query.java:427) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:72) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 net.corda.node.services.network.PersistentNetworkMapCache.getAllInfos(PersistentNetworkMapCache.kt:251) ~[corda-node-3.1.jar:?] 在 net.corda.node.services.network.PersistentNetworkMapCache.access$getAllInfos(PersistentNetworkMapCache.kt:89) ~[corda-node-3.1.jar:?] 在 net.corda.node.services.network.PersistentNetworkMapCache$start$$inlined$synchronized$lambda$1.invoke(PersistentNetworkMapCache.kt:113) ~[corda-node-3.1.jar:?] 在 net.corda.node.services.network.PersistentNetworkMapCache$start$$inlined$synchronized$lambda$1.invoke(PersistentNetworkMapCache.kt:89) ~[corda-node-3.1.jar:?] 在 net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:156) ~[corda-node-api-3.1.jar:?] 在 net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:136) ~[corda-node-api-3.1.jar:?] 在 net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:142) ~[corda-node-api-3.1.jar:?] 在 net.corda.node.services.network.PersistentNetworkMapCache.start(PersistentNetworkMapCache.kt:113) ~[corda-node-3.1.jar:?] 在 net.corda.node.internal.AbstractNode$generateAndSaveNodeInfo$$inlined$use$lambda$1.invoke(AbstractNode.kt:259) ~[corda-node-3.1.jar:?] 在 net.corda.node.internal.AbstractNode$generateAndSaveNodeInfo$$inlined$use$lambda$1.invoke(AbstractNode.kt:161) ~[corda-node-3.1.jar:?] 在 net.corda.nodeapi.internal.persistence.CordaPersistence.inTopLevelTransaction(CordaPersistence.kt:173) ~[corda-node-api-3.1.jar:?] 在 net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:158) ~[corda-node-api-3.1.jar:?] 在 net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:136) ~[corda-node-api-3.1.jar:?] 在 net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:142) ~[corda-node-api-3.1.jar:?] 在 net.corda.node.internal.AbstractNode.generateAndSaveNodeInfo(AbstractNode.kt:255) ~[corda-node-3.1.jar:?] 在 net.corda.node.internal.Node.generateAndSaveNodeInfo(Node.kt:381) ~[corda-node-3.1.jar:?] 在 net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:203) ~[corda-node-3.1.jar:?] 在 net.corda.node.internal.NodeStartup.run(NodeStartup.kt:160) [corda-node-3.1.jar:?] 在 net.corda.node.Corda.main(Corda.kt:25) [corda-node-3.1.jar:?] 引起: org.hibernate.exception.SQLGrammarException:无法提取 结果集 在 org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.loader.Loader.getResultSet(Loader.java:2123) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1911) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1887) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.loader.Loader.doQuery(Loader.java:932) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.loader.Loader.doList(Loader.java:2615) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.loader.Loader.doList(Loader.java:2598) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2430) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.loader.Loader.list(Loader.java:2425) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:502) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:370) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.internal.SessionImpl.list(SessionImpl.java:1481) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1441) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] 在 org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1410) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] ... 21 更多原因:com.microsoft.sqlserver.jdbc.SQLServerException:附近的语法不正确 '-'。 在 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:258) ~[mssql-jdbc-6.2.2.jre8.jar:?]

【问题讨论】:

    标签: corda


    【解决方案1】:

    连字符 - 不是 SQL Server 中标识符的有效字符,如果存在,则需要通过用双引号括起来对标识符进行转义。 Liquibase 检测到这一点并添加双引号(因此正确创建了表),但 Corda 没有,并且发送的 SQL 语法不正确。解决方法是将架构名称更改为包含 _ 而不是 -

    【讨论】:

      猜你喜欢
      • 2021-08-13
      • 2021-10-02
      • 2019-09-26
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多