1
votes

I am getting an error in running network bootstrapper on a Corda Enterprise 3.1 set up with SQL server. The migration SQL ran successfully and new tables were created in the schema set up on SQL Server.

Can you please suggest what could be the issue? I noticed that we have ‘-‘ character in our database name. Will that be a problem?

[ERROR] 2018-10-05T06:17:52,269Z [main] internal.Node.run - Exception during node startup {} javax.persistence.PersistenceException: org.hibernate.exception.SQLGrammarException: could not extract ResultSet at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:147) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:155) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1419) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.Query.getResultList(Query.java:427) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.query.criteria.internal.compile.CriteriaQueryTypeQueryAdapter.getResultList(CriteriaQueryTypeQueryAdapter.java:72) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at net.corda.node.services.network.PersistentNetworkMapCache.getAllInfos(PersistentNetworkMapCache.kt:251) ~[corda-node-3.1.jar:?] at net.corda.node.services.network.PersistentNetworkMapCache.access$getAllInfos(PersistentNetworkMapCache.kt:89) ~[corda-node-3.1.jar:?] at net.corda.node.services.network.PersistentNetworkMapCache$start$$inlined$synchronized$lambda$1.invoke(PersistentNetworkMapCache.kt:113) ~[corda-node-3.1.jar:?] at net.corda.node.services.network.PersistentNetworkMapCache$start$$inlined$synchronized$lambda$1.invoke(PersistentNetworkMapCache.kt:89) ~[corda-node-3.1.jar:?] at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:156) ~[corda-node-api-3.1.jar:?] at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:136) ~[corda-node-api-3.1.jar:?] at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:142) ~[corda-node-api-3.1.jar:?] at net.corda.node.services.network.PersistentNetworkMapCache.start(PersistentNetworkMapCache.kt:113) ~[corda-node-3.1.jar:?] at net.corda.node.internal.AbstractNode$generateAndSaveNodeInfo$$inlined$use$lambda$1.invoke(AbstractNode.kt:259) ~[corda-node-3.1.jar:?] at net.corda.node.internal.AbstractNode$generateAndSaveNodeInfo$$inlined$use$lambda$1.invoke(AbstractNode.kt:161) ~[corda-node-3.1.jar:?] at net.corda.nodeapi.internal.persistence.CordaPersistence.inTopLevelTransaction(CordaPersistence.kt:173) ~[corda-node-api-3.1.jar:?] at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:158) ~[corda-node-api-3.1.jar:?] at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:136) ~[corda-node-api-3.1.jar:?] at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:142) ~[corda-node-api-3.1.jar:?] at net.corda.node.internal.AbstractNode.generateAndSaveNodeInfo(AbstractNode.kt:255) ~[corda-node-3.1.jar:?] at net.corda.node.internal.Node.generateAndSaveNodeInfo(Node.kt:381) ~[corda-node-3.1.jar:?] at net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:203) ~[corda-node-3.1.jar:?] at net.corda.node.internal.NodeStartup.run(NodeStartup.kt:160) [corda-node-3.1.jar:?] at net.corda.node.Corda.main(Corda.kt:25) [corda-node-3.1.jar:?] Caused by: org.hibernate.exception.SQLGrammarException: could not extract ResultSet at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:106) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:111) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:97) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:79) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.loader.Loader.getResultSet(Loader.java:2123) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1911) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1887) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.loader.Loader.doQuery(Loader.java:932) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:349) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.loader.Loader.doList(Loader.java:2615) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.loader.Loader.doList(Loader.java:2598) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2430) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.loader.Loader.list(Loader.java:2425) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:502) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:370) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:216) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1481) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.query.internal.AbstractProducedQuery.doList(AbstractProducedQuery.java:1441) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] at org.hibernate.query.internal.AbstractProducedQuery.list(AbstractProducedQuery.java:1410) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final] ... 21 more Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Incorrect syntax near '-'. at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:258) ~[mssql-jdbc-6.2.2.jre8.jar:?]

1

1 Answers

1
votes

Hyphen -is not a valid character for identifier in SQL Server and if it's present then the identifier needs to be escaped by wrapping in double quotes. Liquibase detects this and adds double quotes (so the tables are created correctly), but Corda doesn't and sends SQL with incorrect syntax. The workaround would be to change schema name to contain _ instead of -.