当前位置: 首页 > 知识库问答 >
问题:

公证人签署后,发起人无法将状态提交给vault_linear_states

龙默
2023-03-14

我有一个基于UUID检索未消费州的查询。

val uuid = linearId.toUUID()
        val queryCriteria = QueryCriteria.LinearStateQueryCriteria(
                linearId = listOf(uuid))
        return services.vaultQueryBy<ContractState>(queryCriteria).states

问题陈述:在 Corda 3.0 上,使用 Postgres。查询保管库时,同一 UUID 的多个/缺少未使用状态。由 2 个参与者、借款人和贷款人组成的义务状态,从不同的交易过渡到不同的生命周期。但在某些时候

  1. 当借款人查询其保险库以查找该uuid的未使用状态时,它返回了2条记录。
  2. 当贷方查询其保管库以查找该uuid的未使用状态时,它返回了0条记录。

在公证数据库上node_notary_commit_log

╔════════════════╤══════════════════════════╗
║ transaction_id │ consuming_transaction_id ║
╠════════════════╪══════════════════════════╣
║ Transaction A  │ Transaction B            ║
╟────────────────┼──────────────────────────╢
║ Transaction B  │ Transaction C            ║
╟────────────────┼──────────────────────────╢
║ Transaction C  │ Transaction D            ║
╚════════════════╧══════════════════════════╝

vault_states

缺少事务C,有2个事务的< code>consumed_timestamp为空,所以这可能是返回2条记录的原因。

╔════════════════╤═════════════════════╗
║ transaction_id │ consumed_timsestamp ║
╠════════════════╪═════════════════════╣
║ Transaction A  │ T                   ║
╟────────────────┼─────────────────────╢
║ Transaction B  │ null                ║
╟────────────────┼─────────────────────╢
║ Transaction D  │ null                ║
╚════════════════╧═════════════════════╝

vault_linear_states

缺少事务 C

╒════════════════╤══════╕
│ transaction_id │ uuid │
╞════════════════╪══════╡
│ Transaction A  │ XYZ  │
├────────────────┼──────┤
│ Transaction B  │ XYZ  │
├────────────────┼──────┤
│ Transaction D  │ XYZ  │
╘════════════════╧══════╛

义务状态模式表

缺少事务 C

╔════════════════╤══════════╤═══════════╗
║ transaction_id │ linearId │ lifecycle ║
╠════════════════╪══════════╪═══════════╣
║ Transaction A  │ XYZ      │ foo       ║
╟────────────────┼──────────┼───────────╢
║ Transaction B  │ XYZ      │ bar       ║
╟────────────────┼──────────┼───────────╢
║ Transaction D  │ XYZ      │ baz       ║
╚════════════════╧══════════╧═══════════╝

vault_states

╔════════════════╤═════════════════════╗
║ transaction_id │ consumed_timsestamp ║
╠════════════════╪═════════════════════╣
║ Transaction A  │ T                   ║
╟────────────────┼─────────────────────╢
║ Transaction B  │ T+1                 ║
╟────────────────┼─────────────────────╢
║ Transaction C  │ T+2                 ║
╟────────────────┼─────────────────────╢
║ Transaction D  │ null                ║
╚════════════════╧═════════════════════╝

vault_linear_states

缺少事务 D,这就是为什么即使vault_states有 tx D,也没有找到记录的原因

╒════════════════╤══════╕
│ transaction_id │ uuid │
╞════════════════╪══════╡
│ Transaction A  │ XYZ  │
├────────────────┼──────┤
│ Transaction B  │ XYZ  │
├────────────────┼──────┤
│ Transaction C  │ XYZ  │
╘════════════════╧══════╛

义务状态模式表

缺少事务D

╔════════════════╤══════════╤═══════════╗
║ transaction_id │ linearId │ lifecycle ║
╠════════════════╪══════════╪═══════════╣
║ Transaction A  │ XYZ      │ foo       ║
╟────────────────┼──────────┼───────────╢
║ Transaction B  │ XYZ      │ bar       ║
╟────────────────┼──────────┼───────────╢
║ Transaction C  │ XYZ      │ baz       ║
╚════════════════╧══════════╧═══════════╝

日志在公证人响应后的提交过程中显示一些异常。rx.exceptions.OnErrorNotImplementedException:访问索引信息时出错:public.vault_linear_states

[INFO ] 2018-06-20T04:45:13,256Z [Node thread-1] flow.[a4ab4833-4c8c-4bd6-80ee-f7c58057a2d0].IssueObligation - {}
[INFO ] 2018-06-20T04:45:14,738Z [Node thread-1] flow.[a4ab4833-4c8c-4bd6-80ee-f7c58057a2d0].initiateSession - Initiating flow session with party OU=Lender, O=Lender, L=UK, C=UK. Session id for tracing purposes is SessionId(toLong=8246766023731352611). {}
[INFO ] 2018-06-20T04:45:18,276Z [Node thread-1] flow.[a4ab4833-4c8c-4bd6-80ee-f7c58057a2d0].initiateSession - Initiating flow session with party O=NetworkMapAndNotary, L=UK, C=UK. Session id for tracing purposes is SessionId(toLong=3705412054539601993). {}
[INFO ] 2018-06-20T04:45:19,580Z [Node thread-1] persistence.HibernateConfiguration.makeSessionFactoryForSchemas - Creating session factory for schemas: [ObligationSchemaV1(name=net.corda.examples.ObligationSchema, version=1)] {}
[INFO ] 2018-06-20T04:45:19,588Z [Node thread-1] internal.ConnectionProviderInitiator.initiateService - HHH000130: Instantiating explicit connection provider: net.corda.nodeapi.internal.persistence.HibernateConfiguration$NodeDatabaseConnectionProvider {}
[INFO ] 2018-06-20T04:45:19,599Z [Node thread-1] dialect.Dialect. - HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL94Dialect {}
[INFO ] 2018-06-20T04:45:20,246Z [Node thread-1] internal.LobCreatorBuilderImpl.useContextualLobCreation - HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException {}
[INFO ] 2018-06-20T04:45:20,249Z [Node thread-1] type.BasicTypeRegistry.register - HHH000270: Type registration [java.util.UUID] overrides previous : org.hibernate.type.UUIDBinaryType@4fb64a52 {}
[INFO ] 2018-06-20T04:45:20,250Z [Node thread-1] type.BasicTypeRegistry.register - HHH000270: Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@77083e41 {}
[INFO ] 2018-06-20T04:45:20,329Z [Node thread-1] connections.access.getIsolatedConnection - HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@2f25f745] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. {}
[INFO ] 2018-06-20T04:45:20,367Z [Node thread-1] persistence.HibernateConfiguration.makeSessionFactoryForSchemas - Created session factory for schemas: [ObligationSchemaV1(name=net.corda.examples.ObligationSchema, version=1)] {}
[INFO ] 2018-06-20T04:45:20,500Z [Node thread-1] persistence.HibernateConfiguration.makeSessionFactoryForSchemas - Creating session factory for schemas: [VaultSchemaV1(name=net.corda.node.services.vault.VaultSchema, version=1)] {}
[INFO ] 2018-06-20T04:45:20,503Z [Node thread-1] internal.ConnectionProviderInitiator.initiateService - HHH000130: Instantiating explicit connection provider: net.corda.nodeapi.internal.persistence.HibernateConfiguration$NodeDatabaseConnectionProvider {}
[INFO ] 2018-06-20T04:45:20,510Z [Node thread-1] dialect.Dialect. - HHH000400: Using dialect: org.hibernate.dialect.PostgreSQL94Dialect {}
[INFO ] 2018-06-20T04:45:20,523Z [Node thread-1] internal.LobCreatorBuilderImpl.useContextualLobCreation - HHH000424: Disabling contextual LOB creation as createClob() method threw error : java.lang.reflect.InvocationTargetException {}
[INFO ] 2018-06-20T04:45:20,526Z [Node thread-1] type.BasicTypeRegistry.register - HHH000270: Type registration [java.util.UUID] overrides previous : org.hibernate.type.UUIDBinaryType@4fb64a52 {}
[INFO ] 2018-06-20T04:45:20,526Z [Node thread-1] type.BasicTypeRegistry.register - HHH000270: Type registration [materialized_blob] overrides previous : org.hibernate.type.MaterializedBlobType@77083e41 {}
[INFO ] 2018-06-20T04:45:20,582Z [Node thread-1] connections.access.getIsolatedConnection - HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@aac1e28] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. {}
[WARN ] 2018-06-20T04:45:20,607Z [Node thread-1] spi.SqlExceptionHelper.logExceptions - SQL Error: 0, SQLState: 42883 {}
[ERROR] 2018-06-20T04:45:20,608Z [Node thread-1] spi.SqlExceptionHelper.logExceptions - ERROR: function information_schema._pg_expandarray(int2vector) does not exist
  Hint: No function matches the given name and argument types. You might need to add explicit type casts.
  Position: 930 {}
[WARN ] 2018-06-20T04:45:20,615Z [Node thread-1] flow.[a4ab4833-4c8c-4bd6-80ee-f7c58057a2d0].run - Terminated by unexpected exception {}
rx.exceptions.OnErrorNotImplementedException: Error accessing index information: public.vault_linear_states
    at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:386) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.internal.util.InternalObservableUtils$ErrorNotImplementedAction.call(InternalObservableUtils.java:383) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.internal.util.ActionSubscriber.onError(ActionSubscriber.java:44) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.observers.SafeSubscriber._onError(SafeSubscriber.java:153) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.observers.SafeSubscriber.onError(SafeSubscriber.java:115) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.exceptions.Exceptions.throwOrReport(Exceptions.java:216) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:139) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.subjects.PublishSubject$PublishSubjectProducer.onNext(PublishSubject.java:304) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.subjects.PublishSubject$PublishSubjectState.onNext(PublishSubject.java:219) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.subjects.PublishSubject.onNext(PublishSubject.java:72) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.internal.util.ObserverSubscriber.onNext(ObserverSubscriber.java:34) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.subjects.PublishSubject$PublishSubjectProducer.onNext(PublishSubject.java:304) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.subjects.PublishSubject$PublishSubjectState.onNext(PublishSubject.java:219) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.subjects.PublishSubject.onNext(PublishSubject.java:72) ~[rxjava-1.2.4.jar:1.2.4]
    at net.corda.node.services.vault.NodeVaultService.processAndNotify(NodeVaultService.kt:203) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.vault.NodeVaultService.access$processAndNotify(NodeVaultService.kt:47) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.vault.NodeVaultService$notifyAll$1.invoke(NodeVaultService.kt:116) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.vault.NodeVaultService.notifyAll(NodeVaultService.kt:126) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.api.ServiceHubInternal$DefaultImpls.recordTransactions(ServiceHubInternal.kt:118) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.internal.AbstractNode$ServiceHubInternalImpl$recordTransactions$1.invoke(AbstractNode.kt:811) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.internal.AbstractNode$ServiceHubInternalImpl$recordTransactions$1.invoke(AbstractNode.kt:772) ~[corda-node-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:132) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:120) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.CordaPersistence.transaction(CordaPersistence.kt:127) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.node.internal.AbstractNode$ServiceHubInternalImpl.recordTransactions(AbstractNode.kt:810) ~[corda-node-corda-3.0.jar:?]
    at net.corda.core.node.ServiceHub$DefaultImpls.recordTransactions(ServiceHub.kt:201) ~[corda-core-corda-3.0.jar:?]
    at net.corda.node.services.api.ServiceHubInternal$DefaultImpls.recordTransactions(ServiceHubInternal.kt) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.internal.AbstractNode$ServiceHubInternalImpl.recordTransactions(AbstractNode.kt:772) ~[corda-node-corda-3.0.jar:?]
    at net.corda.core.node.ServiceHub$DefaultImpls.recordTransactions(ServiceHub.kt:193) ~[corda-core-corda-3.0.jar:?]
    at net.corda.node.services.api.ServiceHubInternal$DefaultImpls.recordTransactions(ServiceHubInternal.kt) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.internal.AbstractNode$ServiceHubInternalImpl.recordTransactions(AbstractNode.kt:772) ~[corda-node-corda-3.0.jar:?]
    at net.corda.core.flows.FinalityFlow.notariseAndRecord(FinalityFlow.kt:78) ~[corda-core-corda-3.0.jar:?]
    at net.corda.core.flows.FinalityFlow.call(FinalityFlow.kt:56) ~[corda-core-corda-3.0.jar:?]
    at net.corda.core.flows.FinalityFlow.call(FinalityFlow.kt:28) ~[corda-core-corda-3.0.jar:?]
    at net.corda.core.flows.FlowLogic.subFlow(FlowLogic.kt:290) ~[corda-core-corda-3.0.jar:?]
    at net.corda.examples.obligation.flows.IssueObligation$Initiator.call(IssueObligation.kt:71) ~[obligation-0.1.jar:?]
    at net.corda.examples.obligation.flows.IssueObligation$Initiator.call(IssueObligation.kt:21) ~[obligation-0.1.jar:?]
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:96) [corda-node-corda-3.0.jar:?]
    at net.corda.node.services.statemachine.FlowStateMachineImpl.run(FlowStateMachineImpl.kt:44) [corda-node-corda-3.0.jar:?]
    at co.paralleluniverse.fibers.Fiber.run1(Fiber.java:1092) [quasar-core-0.7.9-jdk8.jar:0.7.9]
    at co.paralleluniverse.fibers.Fiber.exec(Fiber.java:788) [quasar-core-0.7.9-jdk8.jar:0.7.9]
    at co.paralleluniverse.fibers.RunnableFiberTask.doExec(RunnableFiberTask.java:100) [quasar-core-0.7.9-jdk8.jar:0.7.9]
    at co.paralleluniverse.fibers.RunnableFiberTask.run(RunnableFiberTask.java:91) [quasar-core-0.7.9-jdk8.jar:0.7.9]
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_171]
    at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_171]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:1.8.0_171]
    at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:1.8.0_171]
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_171]
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_171]
    at net.corda.node.utilities.AffinityExecutor$ServiceAffinityExecutor$1$thread$1.run(AffinityExecutor.kt:62) [corda-node-corda-3.0.jar:?]
Caused by: org.hibernate.exception.SQLGrammarException: Error accessing index information: public.vault_linear_states
    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.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.convertSQLException(InformationExtractorJdbcDatabaseMetaDataImpl.java:98) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getIndexes(InformationExtractorJdbcDatabaseMetaDataImpl.java:751) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.extract.internal.TableInformationImpl.indexes(TableInformationImpl.java:122) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.extract.internal.TableInformationImpl.getIndex(TableInformationImpl.java:138) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.findMatchingIndex(AbstractSchemaMigrator.java:340) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyIndexes(AbstractSchemaMigrator.java:324) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:84) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:203) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:110) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:309) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:445) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration.buildSessionFactory(HibernateConfiguration.kt:113) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration.makeSessionFactoryForSchemas(HibernateConfiguration.kt:63) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration.access$makeSessionFactoryForSchemas(HibernateConfiguration.kt:26) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration$sessionFactoryForSchemas$1.apply(HibernateConfiguration.kt:44) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration$sessionFactoryForSchemas$1.apply(HibernateConfiguration.kt:26) ~[corda-node-api-corda-3.0.jar:?]
    at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[?:1.8.0_171]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration.sessionFactoryForSchemas(HibernateConfiguration.kt:44) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.node.services.schema.HibernateObserver.persistStatesWithSchema$node(HibernateObserver.kt:55) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.schema.HibernateObserver.persist(HibernateObserver.kt:50) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.schema.HibernateObserver.access$persist(HibernateObserver.kt:29) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.schema.HibernateObserver$Companion$install$1.call(HibernateObserver.kt:34) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.schema.HibernateObserver$Companion$install$1.call(HibernateObserver.kt:30) ~[corda-node-corda-3.0.jar:?]
    at rx.internal.util.ActionSubscriber.onNext(ActionSubscriber.java:39) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134) ~[rxjava-1.2.4.jar:1.2.4]
    ... 44 more
Caused by: org.postgresql.util.PSQLException: ERROR: function information_schema._pg_expandarray(int2vector) does not exist
  Hint: No function matches the given name and argument types. You might need to add explicit type casts.
  Position: 930
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2477) ~[postgresql-42.1.4.jar:42.1.4]
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2190) ~[postgresql-42.1.4.jar:42.1.4]
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:300) ~[postgresql-42.1.4.jar:42.1.4]
    at org.postgresql.jdbc.PgStatement.executeInternal(PgStatement.java:428) ~[postgresql-42.1.4.jar:42.1.4]
    at org.postgresql.jdbc.PgStatement.execute(PgStatement.java:354) ~[postgresql-42.1.4.jar:42.1.4]
    at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:301) ~[postgresql-42.1.4.jar:42.1.4]
    at org.postgresql.jdbc.PgStatement.executeCachedSql(PgStatement.java:287) ~[postgresql-42.1.4.jar:42.1.4]
    at org.postgresql.jdbc.PgStatement.executeWithFlags(PgStatement.java:264) ~[postgresql-42.1.4.jar:42.1.4]
    at org.postgresql.jdbc.PgStatement.executeQuery(PgStatement.java:231) ~[postgresql-42.1.4.jar:42.1.4]
    at org.postgresql.jdbc.PgDatabaseMetaData.getIndexInfo(PgDatabaseMetaData.java:2334) ~[postgresql-42.1.4.jar:42.1.4]
    at org.hibernate.tool.schema.extract.internal.InformationExtractorJdbcDatabaseMetaDataImpl.getIndexes(InformationExtractorJdbcDatabaseMetaDataImpl.java:711) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.extract.internal.TableInformationImpl.indexes(TableInformationImpl.java:122) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.extract.internal.TableInformationImpl.getIndex(TableInformationImpl.java:138) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.findMatchingIndex(AbstractSchemaMigrator.java:340) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.applyIndexes(AbstractSchemaMigrator.java:324) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.internal.GroupedSchemaMigratorImpl.performTablesMigration(GroupedSchemaMigratorImpl.java:84) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.performMigration(AbstractSchemaMigrator.java:203) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.internal.AbstractSchemaMigrator.doMigration(AbstractSchemaMigrator.java:110) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.performDatabaseAction(SchemaManagementToolCoordinator.java:183) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.tool.schema.spi.SchemaManagementToolCoordinator.process(SchemaManagementToolCoordinator.java:72) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.internal.SessionFactoryImpl.(SessionFactoryImpl.java:309) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at org.hibernate.boot.internal.SessionFactoryBuilderImpl.build(SessionFactoryBuilderImpl.java:445) ~[hibernate-core-5.2.6.Final.jar:5.2.6.Final]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration.buildSessionFactory(HibernateConfiguration.kt:113) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration.makeSessionFactoryForSchemas(HibernateConfiguration.kt:63) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration.access$makeSessionFactoryForSchemas(HibernateConfiguration.kt:26) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration$sessionFactoryForSchemas$1.apply(HibernateConfiguration.kt:44) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration$sessionFactoryForSchemas$1.apply(HibernateConfiguration.kt:26) ~[corda-node-api-corda-3.0.jar:?]
    at java.util.concurrent.ConcurrentHashMap.computeIfAbsent(ConcurrentHashMap.java:1660) ~[?:1.8.0_171]
    at net.corda.nodeapi.internal.persistence.HibernateConfiguration.sessionFactoryForSchemas(HibernateConfiguration.kt:44) ~[corda-node-api-corda-3.0.jar:?]
    at net.corda.node.services.schema.HibernateObserver.persistStatesWithSchema$node(HibernateObserver.kt:55) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.schema.HibernateObserver.persist(HibernateObserver.kt:50) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.schema.HibernateObserver.access$persist(HibernateObserver.kt:29) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.schema.HibernateObserver$Companion$install$1.call(HibernateObserver.kt:34) ~[corda-node-corda-3.0.jar:?]
    at net.corda.node.services.schema.HibernateObserver$Companion$install$1.call(HibernateObserver.kt:30) ~[corda-node-corda-3.0.jar:?]
    at rx.internal.util.ActionSubscriber.onNext(ActionSubscriber.java:39) ~[rxjava-1.2.4.jar:1.2.4]
    at rx.observers.SafeSubscriber.onNext(SafeSubscriber.java:134) ~[rxjava-1.2.4.jar:1.2.4]
    ... 44 more

共有1个答案

缑嘉玉
2023-03-14

Corda 3.x中的Postgres支持是社区贡献的实验性功能,我想知道你是否遇到了一个错误(或一些与Postgres版本相关的问题)。日志中的这一行具有提示性:

[ERROR] 2018-06-20T04:45:20,608Z [Node thread-1] spi.SqlExceptionHelper.logExceptions - ERROR: function information_schema._pg_expandarray(int2vector) does not exist
  Hint: No function matches the given name and argument types. You might need to add explicit type casts.
  Position: 930 {}

功能不存在?版本问题?

然后是关于索引的错误:听起来数据没有被正确持久化。

如果您使用 H2,您的应用程序是否正常工作?

 类似资料:
  • 我们有一个客户端设置,他们希望对他们的所有文档使用docusign。 我不确定是什么导致了这一点,因为沙箱下的UI显示这是一个有能力的特性。 提前感谢您的帮助 Jimmie

  • 我试图在解决方案中配置Business network Operator服务,方法是在我的应用程序中添加r3提供的工具箱作为corrdap依赖项。我能够构建应用程序,但当我运行nodes时,我收到Notary错误 更新 我正在添加日志

  • 我很难从一个外部工具发送一个成绩到谷歌课堂。我可以发送等级(assignedGrade和draftGrade)并且可以更改它们。我看到了我的变化,在返回的学生提交,在学生提交的历史,但我永远不能说服教室的作业已经“评分”或“完成”。以教师的身份审视学生的工作,我看到以下几点: 我储存等级的所有尝试都在那里,但仍然是“未分级”。下面是我用来设置等级的代码: 这基本上起作用了--新的等级出现了,一个新

  • 我知道这里已经讨论过至少一百万次了,但是每个servlet在调用forward()之前都会重定向或刷新输出。我有同样的问题,但我没有做任何与输出。我的servlet只接受请求参数并提交到数据库,并在请求上设置一个属性。然后,它将请求转发给jsp,jsp显示属性。我在Tomcat7上使用Servlet3.0。下面是我的servlet doPost方法,后面是转发到的jsp: JSP: 我相信我可能错

  • 我有一个用例来将电子签名与一些机密客户的现有应用程序集成。 在探索docuign时,我发现有两种方法可以获得电子签名: 远程-在电子邮件中发送签名链接 我很清楚这条遥远的路。但是,嵌入式方式不明确,我的问题是关于嵌入式的: 我有一个示例用例:假设,Tom是我的用户,他想从另一个用户Pedro那里获得签名的文档。所以汤姆会: 点击API创建一个信封,将所有文档封装在其中 现在,Tom如何将此URL发

  • Zipalny-f 4/app-debug.apk/aligned-app-debug.apk 在MacOS版本10.14. x(Mojave)之前它一直工作正常。但是当我在最新的MacOS版本10.15. x(Catalina)中运行相同的命令时,我收到了错误 无法打开zipalign,因为无法验证开发者 请建议