在企业Cordapp中将Postgresq添加为一个节点的数据库时出现的问题

时间:2018-12-19 07:49:39

标签: corda

我正在研究Corda企业版的试用版(cordapp-example-release-enterpise-v3)。我试图通过使用下面显示的代码将一个Node的数据库从H2更改为PostgreSQL

node {
        dataSourceProperties = {
        dataSourceClassName = "org.postgresql.ds.PGSimpleDataSource"
        dataSource.url = "jdbc:postgresql://localhost:5432/postgres"
        dataSource.user = test
        dataSource.password = test123
    }
    database = {
        transactionIsolationLevel = READ_COMMITTED
    }
    name "O=PartyC,L=Paris,C=FR"
    p2pPort 10013
    rpcSettings {
        address("localhost:10014")
        adminAddress("localhost:10054")
    }
    webPort 10015
    cordapps = ["$corda_release_group:corda-finance:$corda_release_version"]
    rpcUsers = [[user: "user1", "password": "test", "permissions": ["ALL"]]]
}

在使用gradlew clean build启动buid时,出现类似Could not set unknown property 'dataSourceProperties' for object of type net.corda.plugins.Node.的错误,有人可以帮助我。另外,如果我使用IntelliJ运行代码,那么如何编辑NodeDriver kt文件?。

1 个答案:

答案 0 :(得分:1)

dataSourceProperties属于node.conf而不是deployNodes任务,因此它不起作用,因为cordformdataSourceProperties一无所知,您会看到错误Could not set unknown property。您可以使用extraConfig来完成这项工作。但是,我建议在node.conf中进行这些更改,并使用bootstrapper工具进行引导。下面是一个使用extraConfig的示例。

例如:

node {
....

    extraConfig = [
                    dataSourceProperties : [
                            'dataSourceClassName' : "org.h2.jdbcx.JdbcDataSource",
                            '"dataSource.url"' : "jdbc:h2:tcp://localhost:9105/persistence;DB_CLOSE_ON_EXIT=FALSE;LOCK_TIMEOUT=10000;WRITE_DELAY=100;AUTO_RECONNECT=TRUE;",
                            '"dataSource.user"' : "sa",
                            '"dataSource.password"' : ""
                    ],
                    database : ["transactionIsolationLevel" :"READ_COMMITTED"]
             ]

}