Search code examples
sql-serverpostgresqlsynchronizationsymmetricds

SymmetricDS installation issue


environment: ubuntu live server 20 lts SymmetricDS version: symmetric-server-3.14.6 database type: PostgreSQL database version: 12

installation steps for symmetricds: 1- download zip file from sourceforge 2- unzip zip file symmetricds 3- add file postgres.properties that contain database connection for PostgreSQL database

the main need is to sync data between sql server and PostgreSQL server 2 way communcation and iam starting with the PostgreSQL server installation

  • nothing created on PostgreSQL database
  • when using "bin/sym_service status" i got: Installed: true Running: true Wrapper PID: 165273 Wrapper Running: true Server PID: 165288 Server Running: true

also, when trying: sudo systemctl status SymmetricDS.service i got:

Apr 11 16:27:50 ubuntu java[168420]: ..
Apr 11 16:27:50 ubuntu java[168420]: Waiting for server to start
Apr 11 16:27:50 ubuntu java[168420]: Waiting for server to start
Apr 11 16:27:59 ubuntu java[168420]: ..........:.........:
Apr 11 16:27:59 ubuntu java[168420]: Started
Apr 11 16:28:00 ubuntu systemd[1]: Started Database Synchronization.

yet on pgadmin i foud no activites or connection on postgresql database

could anyone help?

what i need is sync data between SQl server & postgres in 2 ways with (conflict handling - fields/tables mapping) and to be available in booth real time - trigger base

and i don't have any experiences in this soluation also the docs are very bad

i tried installing SymmetricDS on postgresql node and expected that SymmetricDS will connect - create its tables on the database which didn't happen in my case

++ update : cat wrapper.log got

2023-04-11 16:28:01 [INFO   ] [java   ] Error: JMX connector server communication error: service:jmx:rmi://ubuntu:31418
2023-04-11 16:28:01 [INFO   ] [java   ] sun.management.AgentConfigurationError: java.rmi.server.ExportException: Port already in use: 31418; nested exception is:
2023-04-11 16:28:01 [INFO   ] [java   ]         java.net.BindException: Address already in use (Bind failed)
2023-04-11 16:28:01 [SEVERE ] [wrapper] Stopping server because its output matches a failure condition
2023-04-11 16:28:02 [INFO   ] [wrapper] End of output from java process
2023-04-11 16:28:02 [SEVERE ] [wrapper] Unexpected exit from server: 1
2023-04-11 16:28:02 [SEVERE ] [wrapper] Stopping because server exited too quickly after only 1946 milliseconds
2023-04-11 16:28:02 [SEVERE ] [wrapper] Exception caught.
Error 16 [Unexpected exit from server] with native error 1
        at org.jumpmind.symmetric.wrapper.WrapperService.execJava(WrapperService.java:262)
        at org.jumpmind.symmetric.wrapper.Wrapper.main(Wrapper.java:63)

sym_service status

Installed: true Running: false Wrapper PID: 168447 Wrapper Running: true Server PID: 0 Server Running: false


Solution

  • In your sym_service.conf file, you will find some code pertaining to JMX. You don't need to use that for replication, so you can comment them out. They are as follows:

    #wrapper.java.additional=-Dcom.sun.management.jmxremote
    #wrapper.java.additional=-Dcom.sun.management.jmxremote.authenticate=true
    #wrapper.java.additional=-Dcom.sun.management.jmxremote.login.config=SymConfig
    #wrapper.java.additional=-Dcom.sun.management.jmxremote.access.file=security/jmxremote.access
    #wrapper.java.additional=-Dcom.sun.management.jmxremote.local.only=true
    #wrapper.java.additional=-Dcom.sun.management.jmxremote.port=31418
    #wrapper.java.additional=-Dcom.sun.management.jmxremote.rmi.port=31418
    #wrapper.java.additional=-Dcom.sun.management.jmxremote.ssl=false 
    #wrapper.java.additional=-Djava.rmi.server.hostname=127.0.0.1
    #wrapper.java.additional=-Djava.security.auth.login.config=security/jmxremote.config
    

    The port that is getting the issue you posted is the JMX port as seen above. Once this is commented out, SymmetricDS should start up.