View Issue Details

IDProjectCategoryView StatusLast Update
0003401SymmetricDSBugpublic2018-10-17 13:27
Reportervibhorejairath Assigned To 
Priorityhigh 
Status closedResolutionno change required 
Product Version3.8.33 
Summary0003401: SymmetricDS server is having difficulty with retrieving files from the engines directory defined by -Dsymmetric.engines.dir
DescriptionWe have been using customized code to define external folder for symmetric.properties file. The customized code was directly written in one of the symmetric file TypedPropertiesFactory.java. When Chris from jumpmind visited our office, he recommended us to use -Dsymmetric.engines.dir instead of customizing the Symmetric code.

I tired that by defining the JAVA_OPTS in tomcat however now server is not getting started. Could you please see the attached log and advice.

Please see below the environment variable is setup in java command

/Library/Java/JavaVirtualMachines/jdk1.8.0_121.jdk/Contents/Home/bin/java -Djava.util.logging.config.file=/Users/vjairath/devtools/apache-tomcat-7.0.75/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dsymmetric.engines.dir=/opt/engage/ -Djdk.tls.ephemeralDHKeySize=2048 -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -Djava.endorsed.dirs=/Users/vjairath/devtools/apache-tomcat-7.0.75/endorsed -classpath /Users/vjairath/devtools/apache-tomcat-7.0.75/bin/bootstrap.jar:/Users/vjairath/devtools/apache-tomcat-7.0.75/bin/tomcat-juli.jar -Dcatalina.base=/Users/vjairath/devtools/apache-tomcat-7.0.75 -Dcatalina.home=/Users/vjairath/devtools/apache-tomcat-7.0.75 -Djava.io.tmpdir=/Users/vjairath/devtools/apache-tomcat-7.0.75/temp org.apache.catalina.startup.Bootstrap start
Steps To ReproduceStart the Symmetric engine by starting the tomcat server
TagsNo tags attached.

Activities

vibhorejairath

2018-02-02 03:22

reporter  

symmetric.log (76,324 bytes)

vibhorejairath

2018-02-02 03:49

reporter  

symmetric-2.log (511,661 bytes)

vibhorejairath

2018-02-05 15:26

reporter   ~0001111

Dear Support Team,

Any updates on the ticket

maxwellpettit

2018-02-05 16:43

manager   ~0001112

Hello,

There seems to be some sort of miscommunication here. The engines directory should contain a properties file for each node in your configuration. The symmetric.properties file is a separate file that controls global configuration parameters. It looks like you are trying to configure a custom engines directory, but what you have done is point this to the location of your symmetric.properties file. This is not a valid configuration because Symmetric will try to configure the symmetric.properties file as a node.

What I'm guessing that Chris meant was to instead put your configuration settings in each properties file for each node in the engines directory rather than the symmetric.properties file. Then, you could specify your engines directory using the -Dsymmetric.engines.dir property.

Does this make sense?

Thanks,
Max

vibhorejairath

2018-02-05 20:30

reporter   ~0001113

Thanks Max for replying on this issue and I think I got it what you are saying. The symmetric.properties is global configuration file and we should not be externalizing it. The node specific properties can be defined in the externalized folder via -Dysmmetric.engines.dir. This property file can have same properties name like the one in symmetric properties file.

For eg.. external.id, group.id, registration.url and so on... If this is not right.. can you send me an example file for my understanding.

maxwellpettit

2018-02-05 20:45

manager   ~0001114

Correct, you can configure any desired parameters in each node's engines directory. Please take a look at the following documentation on node engines files for more details: https://www.symmetricds.org/doc/3.9/html/user-guide.html#_node_properties_file

The parameters you may use in these engines files are defined in the documentation as well:
https://www.symmetricds.org/doc/3.9/html/user-guide.html#_startup_parameters

https://www.symmetricds.org/doc/3.9/html/user-guide.html#_runtime_parameters

Thanks,
Max

vibhorejairath

2018-02-05 22:47

reporter   ~0001115

Thanks Max, this is really helpful. I am going to try this option tomorrow and will let you know the results

vibhorejairath

2018-02-06 14:02

reporter   ~0001116

Max,

This didn't work either. Let me explain what I am trying to achieve. We have two tier and three tier Synchronization where each nodes are running in its own container (tomcat). We have been using symmetric.properties to load basic configuration of each nodes by doing the customization described above. Since this customization is becoming costly to us as we cannot upgrade to new SymmetricDS version without looking at the customized class again therefore we decided to get rid of it. However, we are not successful so far.

Based on your suggestion, I let the symmetric.properties packaged in the server classpath and created node properties file in the external engine directory.

The symmetric.properties contained only basic properties such as
engine.name=central-server
group.id= server
external.id= central
sync.url= http://$(hostName):8080/SymmetricDS/sync/$(engineName)

the engine directory property file contains the same above properties along with Database configuration but this file is never read by SymmetricDS server and hence I am unable to bring webconsole with full configuration.

Kindly assist where I am going wrong. Perhaps a quick call would help us troubleshoot the issue quickly. Please suggest

maxwellpettit

2018-02-06 15:31

manager   ~0001117

Hello,

I think there may still be a bit of a miscommunication. Each node should be represented by a single .properties file in the engines directory. The naming convention for this file is GROUP_ID-EXTERNAL_ID.properties where GROUP_ID is the node's group id and EXTERNAL_ID is the node's external id. From your provided example you should have a file in your engines directory named "server-central.properties" with the following properties set:

engine.name=server-central
group.id= server
external.id= central
sync.url= http://$(hostName):8080/SymmetricDS/sync/$(engineName)

Any additional properties you wish to set for this node should also be in this file. Then, you would set the location of the directory containing this file (and only this file or other node .properties files not including symmetric.properties) using the -Dsymmetric.engines.dir setting.

The symmetric.properties file should only be used to set parameters globally across all nodes on the server. So if you had more than one node on a server and wanted to set the same property, you could set the in the symmetric.properties file. Since you want to externalize your settings with the java property -Dsymmetric.engines.dir you should not be using the symmetric.properties file at all. You should most likely reset this file to the default and ignore it in your configuration setup.

This does not appear to be a bug in the software.

Thanks,
Max

vibhorejairath

2018-02-06 18:46

reporter   ~0001118

I am going to try but don't think so it will work. I had put the break point in AbstractCommadLauncher#getEngineDir method and the server never came to this breakpoint. So I am guessing i have something wrongly setup which I am unable to figure it out.

vibhorejairath

2018-02-06 18:57

reporter   ~0001119

So I created server-central.properties file in the engine directory as you mentioned in the last thread however now I back to square one with the original problem where my SymmetricDS is not even getting started. It's just reading the symmetric-default.properties and failing.

Please see the attached file
symmetric-3.log (76,744 bytes)

vibhorejairath

2018-02-06 18:59

reporter   ~0001120

Max,
Can we please have a call as I am stalling with this problem with almost 3 days

maxwellpettit

2018-02-08 15:36

manager   ~0001122

Hello,

This issue has become more of a support issue rather than a software issue. To obtain support services (such as a call), this will have to be done through our support center. Please submit a ticket at support.jumpmind.com

Thanks,
Max

vibhorejairath

2018-02-08 17:59

reporter   ~0001123

Thanks Max, I will open a ticket with your support services

Issue History

Date Modified Username Field Change
2018-02-02 03:22 vibhorejairath New Issue
2018-02-02 03:22 vibhorejairath File Added: symmetric.log
2018-02-02 03:49 vibhorejairath File Added: symmetric-2.log
2018-02-05 15:26 vibhorejairath Note Added: 0001111
2018-02-05 16:43 maxwellpettit Note Added: 0001112
2018-02-05 20:30 vibhorejairath Note Added: 0001113
2018-02-05 20:45 maxwellpettit Note Added: 0001114
2018-02-05 22:47 vibhorejairath Note Added: 0001115
2018-02-06 14:02 vibhorejairath Note Added: 0001116
2018-02-06 15:31 maxwellpettit Note Added: 0001117
2018-02-06 18:46 vibhorejairath Note Added: 0001118
2018-02-06 18:57 vibhorejairath File Added: symmetric-3.log
2018-02-06 18:57 vibhorejairath Note Added: 0001119
2018-02-06 18:59 vibhorejairath Note Added: 0001120
2018-02-08 15:36 maxwellpettit Note Added: 0001122
2018-02-08 17:59 vibhorejairath Note Added: 0001123
2018-10-17 13:27 hanes Status new => closed
2018-10-17 13:27 hanes Resolution open => no change required