Postgres 在 symtable 命令期间不适用于对称 ds

Postgres not working for symmetric ds durring symtable command

我正在尝试将 postgres 数据库连接到 symmetric ds
所以我创建了一个名为 local-001.properties 的属性文件,然后我将其放在 engines 文件夹中,之后我尝试 运行 ./ sym 启动命令
但我收到以下错误:

java.sql.SQLException: Cannot create PoolableConnectionFactory ([Amazon][JDBC](11380) Null pointer exception.)
    at org.jumpmind.db.util.ResettableBasicDataSource.createPoolableConnectionFactory(ResettableBasicDataSource.java:78)
    at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1388)
    at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044)
    at org.jumpmind.symmetric.ClientSymmetricEngine.waitForAvailableDatabase(ClientSymmetricEngine.java:467)
    at org.jumpmind.symmetric.ClientSymmetricEngine.createDatabasePlatform(ClientSymmetricEngine.java:385)
    at org.jumpmind.symmetric.ClientSymmetricEngine.createDatabasePlatform(ClientSymmetricEngine.java:335)
    at org.jumpmind.symmetric.ClientSymmetricEngine.createDatabasePlatform(ClientSymmetricEngine.java:328)
    at org.jumpmind.symmetric.AbstractSymmetricEngine.init(AbstractSymmetricEngine.java:316)
    at org.jumpmind.symmetric.ClientSymmetricEngine.init(ClientSymmetricEngine.java:203)
    at org.jumpmind.symmetric.web.ServerSymmetricEngine.init(ServerSymmetricEngine.java:80)
    at org.jumpmind.symmetric.ClientSymmetricEngine.<init>(ClientSymmetricEngine.java:159)
    at org.jumpmind.symmetric.web.ServerSymmetricEngine.<init>(ServerSymmetricEngine.java:59)
    at org.jumpmind.symmetric.web.SymmetricEngineHolder.create(SymmetricEngineHolder.java:285)
    at org.jumpmind.symmetric.web.SymmetricEngineHolder$EngineStarter.run(SymmetricEngineHolder.java:597)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.sql.SQLException: [Amazon][JDBC](11380) Null pointer exception.
    at com.amazon.redshift.client.PGClient.startSession(Unknown Source)
    at com.amazon.redshift.client.PGClient.<init>(Unknown Source)
    at com.amazon.redshift.core.PGJDBCConnection.connect(Unknown Source)
    at com.amazon.jdbc.common.BaseConnectionFactory.doConnect(Unknown Source)
    at com.amazon.jdbc.common.AbstractDriver.connect(Unknown Source)
    at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:38)
    at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:582)
    at org.apache.commons.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:1556)
    at org.jumpmind.db.util.ResettableBasicDataSource.createPoolableConnectionFactory(ResettableBasicDataSource.java:72)


我的属性文件如下:


engine.name=local-001
group.id=local
external.id=001
sync.url=http://localhost:31415/sync/local-001
db.driver=org.postgresql.Driver
db.url=jdbc:postgresql://localhost:5432/samplelocal
db.user=user
db.password=password

编辑: 我在 symmetricDS 3.11.6 上遇到了同样的问题,我将其更改为 3.8.43 并且运行顺利。通过3.8.43,我随机选择了它。所以你不必坚持使用那个特定的版本,但绝对值得尝试另一个版本,尤其是旧版本。

天哪我在这个问题上浪费了多少时间....


原创

试试这个:

db.url=jdbc:postgresql:samplelocal

https://jdbc.postgresql.org/documentation/80/connect.html

但如果您想指定自定义端口,比如 5433,您别无选择,只能像以前那样使用格式。 (db.url=jdbc:postgresql://localhost:5433/samplelocal)。而且我找不到如何让它发挥作用。

我在 3.10.13 有同样的错误。

我从 lib 目录中删除了 redshift jdbc,现在可以使用了。 我想由于某些编码错误,它没有采用 postgresql 驱动程序,而是采用了 redshift 驱动程序。

在 SymmetricDS 3.12 中,Redshift 不再与核心应用程序一起打包,因此如果您可以将 SymmetricDS 升级到 3.12,这应该不是问题。这可能是降级到 3.8.43 and/or 删除 Redshift 驱动程序的一个很好的替代方法。