【问题标题】:Azure Postgres Database requires SSL Connection from CordaAzure Postgres 数据库需要来自 Corda 的 SSL 连接
【发布时间】:2019-08-13 00:38:56
【问题描述】:

使用 Azure 中的 managed Postgres database,Corda 节点无法在启动时连接到数据库。

    [ERROR] 2019-01-23T11:28:50,937Z [main] internal.Node.run - Exception during node startup {}
com.zaxxer.hikari.pool.HikariPool$PoolInitializationException: Failed to initialize pool: FATAL: SSL connection is required. Please specify SSL options and retry.
        at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:512) ~[HikariCP-2.5.1.jar:?]
        at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:105) ~[HikariCP-2.5.1.jar:?]
        at com.zaxxer.hikari.HikariDataSource.<init>(HikariDataSource.java:71) ~[HikariCP-2.5.1.jar:?]
        at net.corda.node.internal.DataSourceFactory.createDataSource(DataSourceFactory.kt:38) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.DataSourceFactory.createDataSource$default(DataSourceFactory.kt:35) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.AbstractNodeKt.configureDatabase(AbstractNode.kt:927) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.AbstractNode.initialiseDatabasePersistence(AbstractNode.kt:695) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.Node.initialiseDatabasePersistence(Node.kt:347) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.AbstractNode.start(AbstractNode.kt:207) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.Node.start(Node.kt:361) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.NodeStartup.startNode(NodeStartup.kt:203) ~[corda-node-3.3-corda.jar:?]
        at net.corda.node.internal.NodeStartup.run(NodeStartup.kt:126) [corda-node-3.3-corda.jar:?]
        at net.corda.node.Corda.main(Corda.kt:13) [corda-node-3.3-corda.jar:?]

我的 node.conf 包含this answer 中推荐的标准 Postgres 配置。

     dataSourceProperties = {
        dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
        dataSource.url = "jdbc:postgresql://[HOST]:[PORT/[DATABASE]"
        dataSource.user = [USERNAME]
        dataSource.password = [PASSWORD]
    }
    database {
        schema = "corda"
        transactionIsolationLevel = "READ_COMMITTED"
    }

如何确保 Postgres 通过 SSL 连接?

【问题讨论】:

    标签: postgresql corda


    【解决方案1】:

    Postgres 允许直接在 jdbc 字符串中设置 ssl 模式。请参阅下面的更新配置,其中包括“?ssl=true”。

         dataSourceProperties = {
            dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
            dataSource.url = "jdbc:postgresql://[HOST]:[PORT/[DATABASE]?ssl=true"
            dataSource.user = [USERNAME]
            dataSource.password = [PASSWORD]
        }
        database {
            schema = [SCHEMA]
            transactionIsolationLevel = "READ_COMMITTED"
        }
    

    database.schema 属性是可选的,并且仅限于 Corda Enterprise。它代表数据库的命名空间。

    【讨论】:

    • 需要注意的是database.schema只在企业版有效,开源版无效。
    猜你喜欢
    • 2023-04-02
    • 2022-06-10
    • 2018-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 2012-02-11
    • 1970-01-01
    相关资源
    最近更新 更多