0

Using the managed Postgres database from Azure a Corda node is unable to connect to the database on start.

    [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:?]

My node.conf includes a standard Postgres configuration as recommended in this answer.

     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"
    }

How can I ensure Postgres is connecting over SSL?

1 Answer 1

0

Postgres allows for setting the ssl mode directly in the jdbc string. See updated configuration below which includes "?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"
    }

The database.schema property is optional and Corda Enterprise only. It represents the database's namespace.

Sign up to request clarification or add additional context in comments.

1 Comment

It should be noted that the database.schema is only valid in the Enterprise version and not the open source version.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.